Gazebo simulation for the Noah-bot robot.
It contains the URDF model of the robot with accurate visual meshes.
- Kinect Camera. Ros topics:
- /noah/kinect/camera_info
- /noah/kinect/depth/camera_info
- /noah/kinect/depth/image_raw
- /noah/kinect/image_raw
- /noah/kinect/points
- Laser Scanner. Ros topics:
- /noah/laser_scan
Ros topics:
- /noah/odom
- /noah/cmd_vel
- Ubuntu version: Focal Fossa 20.04
- ROS Version: Foxy Fitzroy
- Gazebo version: 11
Note: Are you looking for the ROS1 simulation? See here.
Summary of of the packages in the repository.
- Holds Noah xacro files for URDF definition.
- Simple launch file for:
- Convert xacro to urdf
- Run
robot_state_publisher
(Optional):- Publishes static
TF
. - Publishes robot description at
/noah/robot_description
topic.
- Publishes static
- Run
joint_state_publisher
(Optional) - Run
rviz2
(Optional)
- Holds three gazebo worlds to spawn Noah in:
empty.world
,test.world
andsmall_house.world
. - Launch file for:
- Run gazebo using an available world.
- Includes
noah_description
launch file.Includenoah_description
's launch file. - Spawn Noah
- Run rviz2 (optional)
- Install docker
- If using nvidia, install nvidia-docker
- Clone this repository.
- Build the docker image running:
After this, the image tagged as
DOCKER_BUILDKIT=1 docker build -t noahbot:foxy -f docker/Dockerfile .
noahbot:foxy
will be ready to run the Noahbot simulation.
Run:
./docker/run ros2 launch noah_gazebo noah_gazebo.launch.py
To start the simulation.
If you want to test code changes quickly without rebuilding the container, you can use the develop
script:
$ ./docker/develop
Which will open a shell inside the container, mounting the local copy of the ROS packages. You can quickly re-build the code with:
$ cd /colcon_ws
$ colcon build
The develop
script will also run the containers with host networking, so if you open multiple ones
you can easily send ROS messages across them.
- Install ROS Foxy Fitzroy
- Install Gazebo 11
- Clone this repository in your
colcon
workspace.├── colcon_ws └── src └── Noah-bot-simulation-ros2
rosdep install --from-paths src --ignore-src -r -y
- Build the project and source the workspace
colcon build source install/setup.bash source /usr/share/gazebo/setup.bash
- It is ready to be used! See Run Simulation!
ros2 launch noah_gazebo noah_gazebo.launch.py
Use a different world!
ros2 launch noah_gazebo noah_gazebo.launch.py world:=small_house.world
Use the rviz
argument and run rviz2
along the simulation!
ros2 launch noah_gazebo noah_gazebo.launch.py rviz:=true
You can also start the simulation without the Gazebo GUI when you don't have a display (like in CI):
ros2 launch noah_gazebo noah_gazebo.launch.py gazebo_gui:=false
Try Teleoperating Noah!
Once simulation is running, in other terminal run:
ros2 run teleop_twist_keyboard teleop_twist_keyboard cmd_vel:=noah/cmd_vel