Skip to content

Robot Simulation

The "Robot Simulation" section provides commands for launching the Indy robot model in a simulated environment using the Gazebo simulator. This can be useful for testing and developing robotic applications without the need for a physical robot.

Package Configuration

├── indy_gazebo
    └── indy_gazebo.launch.py
├── indy_moveit
    ├── ...
    └── launch ── indy_moveit_gazebo.launch.py

This section uses two packages: indy_gazebo and indy_moveit. The indy_gazebo package contains a description for a simulation robot, while indy_moveit contains moveit configuration to use moveit with simulation robots.

Launch

Run the Gazebo simulator with the Indy7 robot model loaded using the command below.

ros2 launch indy_gazebo indy_gazebo.launch.py indy_type:=indy7

When you run the command, the Gazebo window and the Rviz window will be launched as shown below.

ROS2 Humble


ROS2 Jazzy


To use Moveit in the Gazebo simulator, enter the command below.

ros2 launch indy_moveit indy_moveit_gazebo.launch.py indy_type:=indy7

ROS2 Humble


ROS2 Jazzy


When selecting Goal State in the image below, there are two predefined goals (HomePos, ZeroPos). Press the Plan & Execute button to move the robot to the target position.


In Servoing mode, you can control the robot using a joystick (tested with Xbox One S controller), keyboard, or other devices.

First, connect the device to the PC and install the necessary drivers if needed (keyboard and Xbox controller do not require driver installation).

Run the Gazebo simulator for Indy7 with the following command.

ros2 launch indy_moveit indy_moveit_gazebo.launch.py indy_type:=indy7 servo_mode:=true

Servoing Mode Using the Keyboard

Start the controller for servo control with the following command.

ros2 run indy_driver servo_keyboard_input.py --ros-args -p is_sim:=true
  • , : Jog motion in x direction of the task space
  • , : Jog motion in y direction of the task space
  • ., ;: Jog motion in z direction of the task space
  • N, M, ,: Move in task space UVW
  • W, E: Switch jog motion based on global coordinates (W) and tool coordinates (E)
  • 1, 2, 3, 4, 5, 6, 7: Jog motion in joint space
  • R: Switch jog direction
  • -, +: Adjust motion speed in joint space
  • 9, 0: Adjust motion speed in task space
  • Q: Quit

Servoing Mode Using the Joy Controller (Xbox One S pad)

Start the controller for servo control with the following command.

ros2 run indy_driver servo_joy_input.py --ros-args -p is_sim:=true
  • D-pad: Control joint motion of axis 1 and 2
  • Y, A: Control joint motion of axis 3
  • B, X: Control joint motion of axis 4
  • LS, RS, LB, RB, LT, RT: Control TCP motion in task space