This is the base image used for negative obstacle detection at KR, for the Jackals to run ROS2-Jazzy on Ubuntu-24.04
TL;DR:
- It installs the dependencies required by many user packages (see
risk-mpc/Dockerfile
). - It copies the
ws
main dcist workspace and builds it. - It provides helper scripts
build.bash
,run.bash
andjoin.bash
Three architectures are provided:
kumarrobotics/risk-mpc-bare
- x86_64 CPU: To run in CPU-only platforms, such as the Intel NUC for the high-altitude quads. Based onubuntu
Docker images.kumarrobotics/risk-mpc-nvda
- x86_64 CUDA: To run in x86_64 GPU-accelerated platforms, such as the computers on the Jackals. Based onnvidia/cuda
Docker images.kumarrobotics/risk-mpc-nvda
- arm64 CUDA: To run in Nvidia Jetson platforms.
git clone https://github.com/KumarRobotics/risk_mpc.git
cd risk_mpc && git submodule update --init --recursive
./build.bash risk-mpc x86_64_nvda
./run.bash risk-mpc-nvda:latest
To launch the base hardware (no sensors), use the following commands:
ros2 launch /etc/clearpath/platform/launch/platform-service.launch.py
TODO: Safety controller
If the jackal does not move with teleop, make sure to check the following things:
- The controller is in manual mode
- run
ros2 service list
. You'll find a service that looks like/platform/mcu/configure
. Note that it may have a prefix, such as/jackal
. If this is the case, the namespace needs to be udpated. Run the following command:ros2 service call /platform/mcu/configure clearpath_platform_msgs/srv/ConfigureMcu "{domain_id: 0, robot_namespace: 'j100_0000'}"
To launch the camera and LIDAR, use the following commands:
ros2 launch ouster_ros sensor.composite.launch.py viz:=false
ros2 launch zed_wrapper zed_camera.launch.py camera_model:=zed2i
To receive odometry, use the following commands:
ros2 launch direct_lidar_inertial_odometry dlio.launch.py rviz:=false
To get obstacle detection
ros2 launch groundgrid ground_grid.launch.py
ros2 launch obstacle_detection obstacle_detection.launch.py
To get the trajectory planning and control framework
ros2 launch planners planners.launch.py
ros2 run mpc_controller mpc_llc
ros2 launch ublox_gps ublox_gps_node-composed-launch.py