_images/jackal_1.webp

The Jackal drivers, set up by MYBOTSHOP , are stored within the ros2_ws. Specifically, in the src folder, you’ll find the third_party section housing drivers designed for the Jackal and additional sensors such as the Ouster Lidar and ZED2 camera.

For configuring these auxiliary sensors, the link provided offers valuable information, particularly regarding navigation. It’s important to note that while the setup maintains a default configuration, users have the flexibility to define their parameters within their custom package, as per their specific requirements.

Start-up Job

Start-up Job

The default startup configuration for the Jackal is managed by the Clearpath startup job, unless explicitly specified otherwise. If there are any concerns regarding the robot’s startup, SSH into the Jackal allows you to verify the status of the startup job:

sudo service ros2 status

Here’s what the different markers signify:

  • Red Marker: Indicates a failed startup job.

  • Green Marker: Indicates normal functioning.

  • Grey Marker: Indicates the service hasn’t started yet.

In case of a red or grey marker, you can attempt to restart the service using:

sudo service ros2 restart

Start-up Job

The Jackal uses MBS startup services for automatic launch of ROS2 nodes. If there are any concerns regarding the robot’s startup, SSH into the Jackal allows you to verify the status of the startup job:

sudo systemctl status clearpath-robot.service

Here’s what the different markers signify:

  • Red Marker: Indicates a failed startup job.

  • Green Marker: Indicates normal functioning.

  • Grey Marker: Indicates the service hasn’t started yet.

In case of a red or grey marker, you can attempt to restart the service using:

sudo systemctl restart clearpath-robot.service

Ouster Service

The Ouster LiDAR is managed by its own service:

sudo service mbs-ouster status

Start-up Job

The Jackal uses Clearpath robot services for automatic launch of ROS2 nodes. If there are any concerns regarding the robot’s startup, SSH into the Jackal allows you to verify the status of the startup job:

sudo systemctl status clearpath-robot.service

Here’s what the different markers signify:

  • Red Marker: Indicates a failed startup job.

  • Green Marker: Indicates normal functioning.

  • Grey Marker: Indicates the service hasn’t started yet.

In case of a red or grey marker, you can attempt to restart the service using:

sudo systemctl restart clearpath-robot.service

Auxiliary Sensors

Auxiliary Sensors

To start the ouster lidar as well as the zed2i, you can launch it via:

ros2 launch jkl_sensors system.launch.py

Ouster Lidar

_images/ouster.webp

Start the Ouster Lidar driver only using:

ros2 launch jkl_sensors ouster.launch.py

Configuration settings are available within the jkl_sensors/ouster.launch.py file.

ZED2i

_images/zed-2-front.webp

The ZED2i camera employs an Nvidia Graphics card integrated into the onboard PC.

_images/jackal_graphic_card.webp

To start the Zed2i camera only:

ros2 launch jkl_sensors zed2i.launch.py

Ensure the camera is connected via USB3.0. If disconnected, reattach it; otherwise, the camera may not be detected.

For usage instructions, refer to the ZED2 ROS2 Tutorial.

Configuration settings are available within the jkl_sensors/zed2i.launch.py file.

Auxiliary Sensors

The ROS2 drivers are automatically started when launching the system launch file. These drivers further expand on the functionality for interfacing as well as for independent component checking.

Ouster Lidar

_images/ouster.webp

The Ouster is on by default from the startup job and it corresponds to the jkl_lidars/launch/include/ouster.launch.py.

sudo service mbs-ouster status

ZED2i

_images/zed-2-front.webp

The ZED2i camera employs an Nvidia Graphics card integrated into the onboard PC.

For usage instructions, refer to the ZED2 ROS2 Tutorial.

Auxiliary Sensors

The ROS2 drivers are automatically started when launching the system launch file. These drivers further expand on the functionality for interfacing as well as for independent component checking.

Ouster Lidar

_images/ouster.webp

For Ouster documentation, see the Ouster ROS2 Docs.

ZED2i

_images/zed-2-front.webp

For usage instructions, refer to the ZED2 ROS2 Tutorial.

Autonomous Navigation

Odom Navigation

One can easily initiate basic navigation using the built-in odometry of the Jackal by executing the command:

ros2 launch jkl_navigation odom_navi.launch.py

This command lets you navigate the robot in the global frame of map

Map Navigation

To initiate map-based navigation, you need to first create a map of the environment and then perform waypoint navigation. Follow these steps:

  1. Create a Map

    Start by executing the SLAM navigation command:

    ros2 launch jkl_navigation slam.launch.py
    

    In a separate terminal, launch the visualization command to observe the map being constructed:

    ros2 launch jkl_viz view_robot.launch.py
    

    Use the joystick controller to navigate and build the map. Once you are satisfied with the map, export it with the following command:

    ros2 run nav2_map_server map_saver_cli -f /home/administrator/ros2_ws/src/mbs/jkl_navigation/maps/custom_map
    
  2. Rebuild Packages

    After saving the map, rebuild the packages to incorporate the new map:

    colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
    
  3. Load and Visualize the Map

    Once rebuilding is complete, load the saved map with the map navigation command:

    ros2 launch jkl_navigation map_navi.launch.py
    

    In a separate terminal, execute the visualization command to visualize and control the robot using rviz:

    ros2 launch jkl_viz view_robot.launch.py
    

Debugging Controller

If you encounter issues with the joystick, SSH into the robot and teleoperate it using:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

This arrangement provides a clear breakdown of steps and commands for map navigation and joystick debugging, ensuring efficient operation of the Jackal.

Odom Navigation

Navigate in the global frame of odom:

ros2 launch jkl_nav2 odom_navi.launch.py

Odom Based Navigation: After launching the drivers and commands, providing a 2D navigation goal in RViz initiates the navigation process. The brown arrow indicates the 2D navigation goal, while the small orange line represents the global planner and the green arrows depict the local planner. The green box surrounding the robot signifies the bounding box. In the map, blue areas represent the local cost map, and the grey area corresponds to the global cost map.

Mapping

  1. Mapping can begin using the joystick controller:

ros2 launch jkl_nav2 slam.launch.py
  1. Once you are satisfied with your map you can export it by running the following command in one of the Jackals terminals:

ros2 run nav2_map_server map_saver_cli -f /home/administrator/ros2_ws/src/mybotshop/jkl_nav2/maps/custom_map
  1. Rebuild the Jackal nav2 so that the maps can be installed in the install folder:

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release && source install/setup.bash

Note

The rebuilding step is not required if the filename is not changed.

Map Navigation

ros2 launch jkl_nav2 map_navi.launch.py

Map Based Navigation: After launching the drivers and commands, providing a 2D pose estimate in RViz in the Map frame initiates map navigation.

SLAM

Run SLAM navigation:

ros2 launch jkl_nav2 slam.launch.py

Odom Navigation

Run odometry-based navigation:

ros2 launch jkl_nav2 odom_navi.launch.py

Map-Based Navigation

Use a pre-built map for navigation:

ros2 launch jkl_nav2 map_navi.launch.py

Visualization

Digital Twin (RVIZ2)

To visualize the Jackal, you can run:

ros2 launch jkl_viz view_robot.launch.py

Digital Twin (RVIZ2)

To visualize the Jackal, you can run:

ros2 launch jkl_viz view_robot.launch

ROS2 Information

  1. ROS DOMAIN ID: 0

  2. RMW Middleware: rmw fastrtps cpp

Digital Twin (RVIZ2)

To visualize the Jackal, you can run:

ros2 launch jkl_viz view_robot.launch.py

ROS2 Information

  1. ROS Version: Jazzy

  2. Simulation: Ignition Fortress

  3. Robot Namespace: /j100_0892

  4. Middleware: Default RMW (FastRTPS or CycloneDDS, depending on environment)

Simulation

Coming Soon

Simulation support for ROS2 Foxy is available via Gazebo Classic.

For simulation instructions, refer to the Jackal Simulation documentation.

Coming Soon

Simulation support for ROS2 Humble is available via Gazebo Classic.

For simulation instructions, refer to the Jackal Simulation documentation.

Gazebo Simulation

To launch the Jackal simulation environment:

ros2 launch jkl_gazebo fortress.launch.py

RViz2 Visualization

To visualize the robot in RViz2:

ros2 launch jkl_viz view_robot.launch.py

Teleoperation (Keyboard)

To teleoperate the Jackal using your keyboard:

ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap cmd_vel:=/j100_0892/cmd_vel

To enable stamped messages:

ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap cmd_vel:=/j100_0892/cmd_vel --ros-args -p stamped:=true

Debugging

Debugging Controller

If you encounter issues with the joystick, SSH into the robot and teleoperate it using:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

Restart Services

To restart the ROS2 service:

sudo service ros2 restart

Debugging Controller

If you encounter issues with the joystick, SSH into the robot and teleoperate it using:

ros2 run teleop_twist_keyboard teleop_twist_keyboard

Restart Services

To restart Clearpath robot services:

sudo systemctl restart clearpath-robot.service

Check Transforms (TF Tree)

To debug TF tree:

ros2 run rqt_gui rqt_gui tf:=/j100_0892/tf tf_static:=/j100_0892/tf_static

Visualize URDF

To view the robot’s URDF model:

ros2 launch jkl_description view_robot.launch.py

Restart Clearpath Drivers

To restart Clearpath robot services:

sudo systemctl restart clearpath-robot.service