====== Tutorials on ROS/SkiROS ====== skiros2_examples give some basic introduction to SkiROS (https://github.com/rvmi/skiros2_examples). Clone into catkin_ws /src folder (same level as the "skills" folder). Also check the SkiROS wiki page `https://github.com/RVMI/skiros2/wiki/` For GUI analytics, `http://wiki.ros.org/rqt` is highly recommended. In order to make any changes to skills related to driving, navigation and localization, transformation frames are good to know about (e.g. http://wiki.ros.org/tf2) For ROS beginners there are many highly pedagogic tutorials at https://www.theconstructsim.com/. For example, they have a whole course on navigation/localization. ====Some bashrc tips for heron_workspace_setup==== ===Pimp history=== Add this to your ''.bashrc'': '' export HISTTIMEFORMAT="%h %d %H:%M:%S " \\ export HISTSIZE=10000 \\ export HISTFILESIZE=10000 \\ export HISTIGNORE="ls:ps:history" \\ shopt -s histappend \\ PROMPT_COMMAND="history -a;$PROMPT_COMMAND" \\ '' ===ROS Configuration=== Add this to your ''.bashrc'': '' export ROS_WS=~/Workspaces/heron_ws \\ source $ROS_WS/devel/setup.bash \\ alias src='cd $ROS_WS/src' \\ export CURRENT_CMAKE_BUILD_DIR="$(catkin locate --workspace $ROS_WS --build)" \\ \\ function print_ros_variables () { \\ echo "ROS_MASTER_URI: " $ROS_MASTER_URI \\ echo "ROS_HOSTNAME: " $ROS_HOSTNAME \\ echo "ROS_IP: " $ROS_IP \\ echo "ROS Workspace: " $ROS_WS \\ echo "rosinstall file: " `test -f $ROS_WS/src/.rosinstall.conf && cat $ROS_WS/src/.rosinstall.conf` \\ } \\ print_ros_variables \\ '' ===Configure Master Way 1 - Static=== Add this to your ''.bashrc '': ''export ROS_IP=192.168.100.5 \\ export ROS_MASTER_URI='[[http://$ROS_IP:11311]]' \\ '' ===Configure Master Way 2 - Flexible === Add this to your ''.bashrc'': '' alias ros_master_local="export ROS_MASTER_URI='http://127.0.0.1:11311' && export ROS_IP='127.0.0.1' && unset ROS_HOSTNAME && \\ print_ros_variables" \\ alias ros_master_remote="export ROS_MASTER_URI='http://192.168.100.5:11311' && export ROS_IP='192.168.100.10' && unset ROS_HOSTNAME && print_ros_variables" \\ ros_master_local \\ '' ===Resource .bashrc=== Add this to your ''.bashrc'': '' alias resource="source ~/.bashrc" '' ===Automatically open a tmux session when connecting through ssh=== Add this to your ''.bashrc'': '' if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then \\ tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux \\ fi \\ '' ===Add SSH keys to a keyring for multiple shells=== This frees you from typing the password of your ssh key every time. Install the `keychain` package. '' eval `keychain --agents ssh --timeout 60 --eval id_rsa` '' ====== ROS Best Practices ====== * [ROS Best Practice Collection](https://github.com/leggedrobotics/ros_best_practices/wiki)