Vision modules for the EU Heron Project
Make a directory called heron_ws
with a src
subfolder.
Check out the following repos into the folder:
git clone [email protected]:ethz-asl/heron_vision.git
git clone [email protected]:RobotnikAutomation/heron_msgs.git
git clone [email protected]:RobotnikAutomation/robotnik_msgs.git
Please get the models from Slack and put them in the heron_ws/src/heron_vision/models
folder.
If you are missing one of the three models (potholes, cracks, and lanes), just copy one of the others over and create the missing one.
cd heron_vision/docker
./run_docker.sh -b
Subsequent times you can just run:
./run_docker.sh
For rebinding the paths, -w /path/to/the/heron_ws/folder
and -d /path/to/the/data/folder
as input to ./run_docker.sh
. Please use the full path, so /home/$USER/folder
rather than ~/folder
.
To run a second bash shell into the docker, use:
docker exec -it heron bash
If it can't find some ROS commands, use:
source /opt/ros/noetic/setup.bash
cd ~/heron_ws
catkin build
After building the code for the first time, you'll have to re-source the workspace:
source ~/.bashrc
There should always be a roscore running. Easiest is to start it in the background:
roscore &
To run the dataset, download the dataset from the #vision channel on slack.
cd ~/data/path/to/the/dataset/
rosbag play 2025-02-18-15-25-24.bag
It's very likely that the inference is slower than the dataset playback, so it's nice to slow down the replay with -r 0.5
(makes the bag run at half speed). Similarly, it's nice to loop the bag over and over again with the -l
flag.
rosbag play 2025-02-18-15-25-24.bag -r 0.5 -l
This node will just sit there and wait for someone to call a service request
rosrun heron_vision pothole_finder_node.py
This will subscribe to the topics in the ROS Bag and collect them to call the crack, pothole, and lane service.
rosrun heron_vision service_tester_node.py
You can check the segmentations by opening up another docker instance and running rqt_image_view
:
docker exec -it heron bash
rqt_image_view
Press the refresh button on the top right and select the /pothole_segmentation
topic.