The Stanford Antarctic Rover project.
- Orbstack/Docker
docker-compose up -ddocker-compose exec halation bashcolcon build --symlink-installALWAYS RUN FROM THE ROOT (not src!)!source install/setup.bash- On subsequent starts, run 1-2 (no need to build or source install)
To rebuild the docker image, run docker-compose up --build -d
- You can directly just edit the code if you have ROS2 already setup on your system, but most likely you won't be.
- If you don't have the ROS2 setup, then you won't have autocomplete/typedefs/important things that you probably want to develop with.
- Instead, we've set up two ways you can access the code.
- (untested) There is a devcontainers.json, which should allow you to directly develop within the container using an VSCode extension 'Dev Containers' (somehow doesn't work with Hinson's machine)
- I've additionally set up ssh, so that if devcontainers doesn't work for you, you can use 'Remote-SSH' (tested on Cursor) with
ssh root@localhost -p 2267. The password is set in the Dockerfile asthispasswordissecure, although since this is just local ssh, you can do whatever you want.
- Either of these methods should get you the proper type definitions. If not, make sure the interpreter is set to
/usr/bin/python3; if it still doesn't work, ping Hinson ;)
ros2 launch rover_bringup rover_system.launch.py
- Install
cloudflared(brew install cloudflaredfor Macs, follow .deb package +dpkg -i ...debfor Linux) - Follow
ssh-keygeninstructions to generate ssh key (give to Hinson) - Paste this in your
~/.ssh/configHost jetson.ssirovers.org ProxyCommand cloudflared access ssh --hostname %h User jetson - Run
ssh jetson.ssirovers.org
- ROS package for object avoidance/rerouting using LIDAR is contained within src/avoidance_rerouting
- Launch using: ros2 run avoidance_rerouting mock_lidar_publisher (this starts a node that sends mock LIDAR signals to /scan)
- To visualize LIDAR outputs, run: ros2 launch foxglove_bridge foxglove_bridge_launch.xml, then go to https://app.foxglove.dev/ssi-halation/dashboard (ask Hiroki to be invited to dashboard) and open up ws://localhost:8765 on Foxglove.
- laser_segmentation: Convert raw LIDAR data to object segementation "https://github.com/ajtudela/laser_segmentation"
- slg_msgs: Dependency of laser_segmentation, used to process laser data "https://github.com/ajtudela/laser_segmentation"
- We use
uvto manage the python dependencies, but NOT for project running. That is,uv addand./uvsync.sh. - Disregard the
.venv/, ros itself has it's own types and deps we need.
- Figure out proper configuration for environment variables
- How to do shutdowns
docker compose up -d
docker compose exec halation bash