Remote Control
Introduction
The Remote Control system allows operators to control the entire LunarBot — including chassis mobility and manipulator arm — using an XBOX 360 wireless joystick.
It integrates:
- Chassis control (via
vos_bringup
) - Manipulator control (via rm_bringup)
- Gripper operations (via message bridge + rm_driver)
- Sensor visualization (via sensor_hardware)
Remote control requires both hardware (joystick, batteries, receiver) and software (ROS 2 launch files) to be properly configured.
Prerequisites
Hardware
- Two 24V batteries powering chassis and manipulator.
- Mini PC installed onboard LunarBot.
- XBOX 360 wireless joystick + USB receiver.
Software
- ROS 2 Humble installed.
- Lunar_Rover_Hardware_Ws workspace with all hardware packages:
- vos_bringup (chassis)
- rm_bringup (manipulator)
- lunar_rover_remote (joystick interface)
- message_bridge (gripper + trajectory bridging)
- sensor_hardware (LiDAR integration, optional for visualization).
Network Setup
- Connect controller PC to WiFi hotspot:
- SSID: REDMI
- Password: dssl123456
- Remote desktop access via TEAMVIEWER:
- IP: 192.168.1.145
- Password: dssl62794316
Remote Control Workflow
Step 1 – Power On
- Switch on both 24V batteries.
- Power up robotic arm.
- Power up chassis system.
Step 2 – Joystick Setup
- Plug in XBOX 360 USB receiver.
- Switch on joystick; it must indicate connected to receiver 1.
Step 3 – Remote Access
- From control PC, launch TEAMVIEWER.
- Connect to LunarBot mini PC using provided IP and password.
Step 4 – Launch Control Nodes
Inside LunarBot’s remote desktop, open four terminals and run:
Terminal 1 – Joystick driver
sudo xboxdrv --silent
Must confirm joystick connected without errors, if not replug receiver and restart joystick.
Terminal 2 – Chassis bringup
Copy code
cd Lunar_Rover_Hardware_Ws
. ./install/setup.bash
ros2 launch vos_bringup vos_bringup.launch
Must print VOS_CONTROLLER IS ACTIVE, if not restart LunarBot and Mini PC.
Terminal 3 – Manipulator bringup
Copy code
cd Lunar_Rover_Hardware_Ws
. ./install/setup.bash
ros2 launch rm_bringup rm_75_bringup.launch.py
Launches rm_driver
, rm_description
, rm_control
, and MoveIt2 config.
Terminal 4 – Remote control mapping
Copy code
cd Lunar_Rover_Hardware_Ws
. ./install/setup.bash
ros2 launch lunar_rover_remote remote.launch.py
This node maps joystick axes and buttons to LunarBot motion.
Step 5 – Operation
- Press button B + Joystick → Control chassis movement.
- Joystick only → Control arm manipulator.
- Gripper commands bridged via gripper_bridge_node (from message_bridge).
Package Integration
vos_bringup
→ Initializes chassis hardware controllersrm_bringup
→ Initializes manipulator arm, description, and driversmessage_bridge
→ Bridges joystick gripper commands to rm_driverlunar_rover_remote
→ Reads joystick input and publishes commands to arm & chassis.sensor_hardware
→ Optional LiDAR visualization in RViz
Troubleshooting
Joystick Issues
- If sudo xboxdrv reports no device:
- Replug USB receiver.
- Restart joystick.
- If joystick not controlling LunarBot:
- In lunar_rover_remote launch files, check device ID.
- Different USB ports may assign different device IDs
Chassis/Manipulator Not Responding
- Ensure both batteries are powered.
- Restart vos_bringup and rm_bringup.
Gripper Not Moving
- Check if rm_driver is running.
- Echo topic:
ros2 topic echo /rm_driver/set_gripper_position_cmd
- If empty, restart gripper_bridge_node.
TEAMVIEWER Connection Fails
- Verify WiFi connection to REDMI hotspot.
- Ping 192.168.1.145 from control PC.
Recommended Workflow
- Power on chasssis + arm
- Connect joystick (check
xboxdrv
) - Start bringup:
- Chassis (vos_bringup)
- Arm (rm_bringup)
- Remote control (lunar_rover_remote)
- Drive LunarBot using joystick
- Plan motions with MoveIt2 if needed ( via
rm_moveit2_config
) - Use LiDAR (
sensor_hardware
) for obstacle detection in RViz.
Safety Notes
- Always test joystick mapping in an open space.
- Emergency stop: power off both 24V batteries.
- Avoid rapid joystick switching, which may overload controller nodes.