预习
安装和配置ros环境http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment
浏览ROS的文件系统http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem
创建并构建ROS包http://wiki.ros.org/ROS/Tutorials/CreatingPackage,http://wiki.ros.org/ROS/Tutorials/BuildingPackages
理解ROS的节点http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes
理解ROS的话题及消息http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics
理解ROS的服务及参数http://wiki.ros.org/ROS/Tutorials/UnderstandingServicesParams
catkin工作区http://wiki.ros.org/catkin/workspaces
installation guide: (ubuntu 20.04,ros noetic,http://wiki.ros.org/noetic/Installation/Ubuntu)
step1: Setup your sources.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
or mirriors
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
step2: Set up your keys
step 2.1
sudo apt install curl
step 2.2
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
step 3:install ation
step 3.1
sudo apt update
step 3.2:
sudo apt install ros-noetic-desktop-full
step 4:Environment setup (Bash for example)
step 4.1:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
step 4.2:
source ~/.bashrc
step 5: Dependencies for building packages
step 5.1:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
step 5.2:
sudo apt install python3-rosdep
step 5.3:
sudo rosdep init
step 5.4:
rosdep update
step1:

step2.1:

step2.2:

note:if no valid OpenPGP data found,
retry
step3.1

step3.2:

step4:

check ~/.bashrc


step 5.1:

step 5.2:

step 5.3:

(if time out,retry)
step 5.4:

note:if time out,retry
视频1:在虚拟机下安装ROS:
视频2:利用VirtualBox安装Ubuntu虚拟机
(1)https://www.virtualbox.org/wiki/Downloads(下载VirturalBox并安装)
(2)http://releases.ubuntu.com/xenial/下载ubuntu的映像文件
(3)https://www.virtualbox.org/manual/UserManual.html#gui-createvm 安装虚拟机
视频3:创建ROS工作区和包
视频4:ROS基本概念-节点、话题、消息,37'54''
============================================================
补充材料-视频5:虚拟机及ROS安装(陈金明同学介绍安装经验),选自电子科技大学中山学院2020春季班直播课(2020.3.26)
课件:2020-3-14上传
直播课程回放(2020-4-2,电子科技大学中山学院2020春季班第四周直播课)
陈金明、胡绵宇、林国荣、康宇豪、陈煅聪、丘俊麟、韦威龙、蔡智伟、樊星、陈琳、丁清正等同学介绍ROS安装、Eigen库使用、turtlesim节点控制等内容
第二讲 ROS基本概念
1、包package
2、节点node
3、话题topic
4、消息message
5、服务service
1、包package
包Package:包(Package)是ROS节点的软件组织单位。
每个包可以包含库、可执行文件、脚本以及其它部件。
Manifests (package.xml):Manifest是关于包的描述的元文件,用于定义包之间的依赖关系,获取包的元信息(包括:名称、版本、维护者、版权等等)。
实用工具及命令
rospack查看包的信息
rospack list显示所有包
rospack find [package_name]根据名字查找某个包
roscd [package_name]通过包的名字快速切换目录
rosls [package_name]显示某个包的文件
2、计算图
通过计算图来介绍ROS的基本概念:节点(Node)、话题(Topic)、消息(消息)

图 GMapping SLAM 的部分计算图
其中,椭圆为节点(ROS的程序)、方框为话题(信息高速公路)、话题中传送的是消息。
同一个话题传送相同类型的消息。
箭头表示消息的传输方向。从节点指向话题的箭头,表示对应的节点是发布者(Publisher),
例如上图中,iiiroboticslidar2为发布者,向/scan话题发布消息(sensor_msgs/LaserScan),该消息为
二维激光雷达消息,
从话题指向节点的箭头,表示对应的节点是订阅者(Subscriber)、例如上图中的spark_slam_gmapping节点,从
scan话题订阅激光雷达的信息。
又如,tf话题中传送坐标变换的消息。
(tensorflow) spark@spark:~$ rostopic type /scan
sensor_msgs/LaserScan
(tensorflow) spark@spark:~$ rosmsg show sensor_msgs/LaserScan
std_msgs/Header header
uint32 seq
time stamp
string frame_id
float32 angle_min
float32 angle_max
float32 angle_increment
float32 time_increment
float32 scan_time
float32 range_min
float32 range_max
float32[] ranges
float32[] intensities


常见问题:
1、catkin_make
ImportError: "from catkin_pkg.package import parse_package" failed: No module named 'catkin_pkg'
Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH.
参考解决方法:
https://stackoverflow.com/questions/43024337/why-this-error-when-i-try-to-create-workspaces-in-ros#

