• Configure arch4edu repository.
  • (ROS1) Install the current recommend noetic distro: arch4edu/ros-noetic-desktop-full
  • (ROS2) Install the latest humble distro: arch4edu/ros2-humble
  • Install fisher: community/fisher
  • Install bass: fisher install edc/bass
  • Install aur/python-catkin_tools for catkin <cmd> (i.e. catkin build)
  • Install Foxglove Studio for visualisation: aur/foxglove-studio-bin
  • Configure environment for ros in fish by editing ~/.config/fish/config.fish:
# Configure ROS
if set -q USE_ROS_DISTRO
	# (ROS2-only) Setup Domain ID
	export ROS_DOMAIN_ID=74
	
	# Configure ROS distro
	bass source /opt/ros/$USE_ROS_DISTRO/setup.bash	
	echo "Configured for use with ROS $(rosversion -d)."
	
	if test -e ".catkin_workspace"; or test -e ".catkin_tools"
        chmod +x devel/setup.bash
        bass source devel/setup.bash
        echo "Loaded environment for current catkin workspace."
    end
    
	# Override the fish prompt
	# Copy the current `fish_prompt` function as `_old_fish_prompt`.
	functions -c fish_prompt _old_fish_prompt
 
	function fish_prompt
		# Run the user's prompt first; it might depend on (pipe)status.
		set -l prompt (_old_fish_prompt)
 
		# Print prompt prefix
		printf '%s ' $USE_ROS_DISTRO
 
		# Include current catkin workspace if applicable
		if set -q CURRENT_CATKIN_WORKSPACE
			printf '(%s) ' (basename "$CURRENT_CATKIN_WORKSPACE")
		end
 
		string join -- \n $prompt # handle multi-line prompts
	end
end

Put this in the interactive section for configuration!

  • Configure alias for dropping into ros env by creating ~/.config/fish/functions/ros.fish:
function ros -d "Drop into a ROS distribution" --argument distro_name
	if test -z $distro_name
		set distro_name noetic
	end
	
	USE_ROS_DISTRO=$distro_name fish
end
  • If using ROS1, install additional recommended packages: aur/ros-noetic-move-base-msgs, aur/ros-noetic-map-server, opencv (or opencv-cuda), aur/ros-noetic-video-stream-opencv, aur/darknet-alexyab-git
  • And also Python packages: yolo-v4
  • Install Tiago workspace:
    cd /opt/tiago_public_ws
    virtualenv venv
    source venv/bin/activate.fish
    pip install rosinstall pyyaml==5.4.1
    wget https://raw.githubusercontent.com/pal-robotics/tiago_tutorials/kinetic-devel/tiago_public-melodic.rosinstall
    rosinstall src /opt/ros/noetic tiago_public-melodic.rosinstall
    
    rosdep update
    rosdep install --from-paths src --ignore-src -y --rosdistro noetic
    
    # you can now
    chmod +x /opt/tiago_public_ws/src/setup.bash
    bass /opt/tiago_public_ws/src/setup.bash
    

Test ROS2

Check that ROS2 has been installed correctly by running:

ros humble
ros2 pkg executables turtlesim
ros2 run turtlesim turtlesim_node