This repository is the onboarding workspace for Kinesis CTP users working with the Robotnik RB-CAR in ROS 1 Noetic.
It provides:
- a ROS 1 Noetic Docker environment for Ubuntu 24.04 and newer hosts;
.reposmanifests for the Kinesis RB-CAR forks;- a standard catkin workspace layout;
- a repeatable local test flow for
roscore, RViz, and RB-CAR packages.
.
├── containers/ros1_noetic/ # Docker-based ROS 1 Noetic dev environment
├── rbcar_kinesis_https.repos # read-only/simple clone manifest
├── rbcar_kinesis_ssh.repos # contributor manifest for Kinesis members
├── scripts/ # workspace helper scripts
└── src/ # ROS packages imported by vcs
The RB-CAR source packages live in separate Kinesis forks:
KinesisCTP/rbcar_commonKinesisCTP/rbcar_simKinesisCTP/robotnik_msgsKinesisCTP/robotnik_sensors
Robotnik's original repositories should remain as upstream references for vendor updates.
Install Docker Engine and make sure it works without sudo:
docker run hello-worldIf Docker was just installed and your user was added to the docker group, open
a new terminal or run:
newgrp dockerFor GUI tools such as RViz, use a Linux desktop session with X11 available. The
container launcher passes through X11 and /dev/dri for OpenGL.
Clone this umbrella workspace:
git clone https://github.com/KinesisCTP/rb-car.git ~/rb-car_ws
cd ~/rb-car_wsStart the ROS 1 Noetic container:
./containers/ros1_noetic/run.shInside the container, import the RB-CAR source packages:
vcs import src < rbcar_kinesis_https.reposInstall missing ROS package dependencies, then build:
rosdep update
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bashUse this when testing without a physical robot.
Terminal 1:
cd ~/rb-car_ws
./containers/ros1_noetic/run.sh
roscoreTerminal 2:
cd ~/rb-car_ws
./containers/ros1_noetic/enter.sh
rvizIf RViz opens but rendering is broken:
LIBGL_ALWAYS_SOFTWARE=1 rvizCopy the environment template:
cd ~/rb-car_ws/containers/ros1_noetic
cp .env.example .envEdit .env so ROS_MASTER_URI points at the robot and ROS_IP is your
workstation's IP address on the robot network:
ROS_MASTER_URI=http://<robot-ip>:11311
ROS_IP=<your-workstation-ip>Find your workstation IP with:
ip -4 addr showDo not leave ROS_IP set to a placeholder or stale network address. If
roscore reports that it cannot contact its own server, check:
echo "$ROS_MASTER_URI"
echo "$ROS_IP"
ping "$ROS_IP"Users with write access to the Kinesis organization should configure GitHub SSH access, then import using the SSH manifest:
vcs import src < rbcar_kinesis_ssh.reposIf packages were initially imported with HTTPS, switch their origin remotes to
SSH:
./scripts/use_ssh_remotes.shRecommended remote layout inside each source repo:
origin -> git@github.com:KinesisCTP/<repo>.git
upstream -> git@github.com:RobotnikAutomation/<repo>.git
Use feature branches for changes:
cd src/rbcar_common
git switch -c feature/my-changeFor each package repo, keep Robotnik as upstream:
git remote add upstream git@github.com:RobotnikAutomation/<repo>.git
git fetch upstreamThen merge or rebase upstream changes intentionally into the Kinesis branch.
Inside the container:
whoami
echo "$ROS_DISTRO"
xeyes
glxinfo -B
rospack profile
catkin_make