Skip to content

Commit 685d22d

Browse files
Adding readme for ros2
1 parent 722c204 commit 685d22d

3 files changed

Lines changed: 16 additions & 3 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ share/python-wheels/
3232
.installed.cfg
3333
*.egg
3434
MANIFEST
35+
.idea*
3536

3637
# PyInstaller
3738
# Usually these files are written by a python script from a template

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
## Dependencies
1010

11-
GEMstack uses Python 3.7+ and ROS Noetic. (It is possible to do some offline and simulation work without ROS, but it is highly recommended to install it if you are working on any onboard behavior or training for rosbag files.)
11+
GEMstack uses Python 3.7+ and ROS Humble. (It is possible to do some offline and simulation work without ROS, but it is highly recommended to install it if you are working on any onboard behavior or training for rosbag files.)
1212

1313
You should also have the following Python dependencies installed, which you can install from this folder using `pip install -r requirements.txt`:
1414

@@ -23,9 +23,9 @@ You should also have the following Python dependencies installed, which you can
2323
- pyyaml
2424

2525

26-
In order to interface with the actual GEM e2 vehicle, you will need [PACMOD2](https://github.com/astuff/pacmod2) - Autonomoustuff's low level interface to vehicle. You will also need Autonomoustuff's [sensor message packages](https://github.com/astuff/astuff_sensor_msgs). The onboard computer uses Ubuntu 20.04 with Python 3.8, CUDA 11.6, and NVIDIA driver 515, so to minimize compatibility issues you should ensure that these are installed on your development system.
26+
In order to interface with the actual GEM e2 vehicle, you will need [PACMOD2](https://github.com/astuff/pacmod2) - Autonomoustuff's low level interface to vehicle. You will also need Autonomoustuff's [sensor message packages](https://github.com/astuff/astuff_sensor_msgs). The onboard computer uses Ubuntu 22.04 with Python 3.8, CUDA 11.6, and NVIDIA driver 515, so to minimize compatibility issues you should ensure that these are installed on your development system.
2727

28-
From a fresh Ubuntu 20.04 with ROS Noetic and [CUDA 11.6 installed](https://gist.github.com/ksopyla/bf74e8ce2683460d8de6e0dc389fc7f5), you can install these dependencies by running `setup/setup_this_machine.sh` from the top-level GEMstack folder.
28+
From a fresh Ubuntu 22.04 with ROS Humble and [CUDA 11.6 installed](https://gist.github.com/ksopyla/bf74e8ce2683460d8de6e0dc389fc7f5), you can install these dependencies by running `setup/setup_this_machine.sh` from the top-level GEMstack folder.
2929

3030
To build a Docker container with all these prerequisites, you can use the provided Dockerfile by running `docker build -t gem_stack setup/`. For GPU support you will need the NVidia Container Runtime (run `setup/get_nvidia_container.sh` from this directory to install, or see [this tutorial](https://collabnix.com/introducing-new-docker-cli-api-support-for-nvidia-gpus-under-docker-engine-19-03-0-beta-release/) to install) and run `docker run -it --gpus all gem_stack /bin/bash`.
3131

ROS2_checklist.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Porting GEMstack to ROS2
2+
GEMstack does not rely on a lot of ROS nodes and hence the major changes needed to port GEMstack from ROS1 to ROS2 were in
3+
1. GEMstack/offboard/calibration/capture_lidar_zed.py
4+
2. GEMstack/onboard/execution/execution.py
5+
3. GEMstack/onboard/interface/gem_hardware.py
6+
7+
GEMHardwareInterface was defined as a class that subscribed to different topics and published to other topics. But in ROS2, we can only subscribe or publish
8+
if we have a node. Hence we declared a node inside the class. The other important change was with respect to the mapping of PACMOD messages.
9+
The message type, topic names and the error flags have been renamed in the new version of PACMOD and the mapping for all of them are complete and added in gem_hardware.py.
10+
11+
Pending items:
12+
1. gem_hardware.py files have the commands to drive the vehicle through new PACMOD version but it is still untested. Need to ensure that the flow of execution can drive the vehicle.

0 commit comments

Comments
 (0)