在学习ros中遇到的问题总结
来到一个新的编辑环境,内心充满学习的喜悦,就让我们一起进入初学ros的阶段吧!来进入学习ros的大海洋中吧!
在linux或者Ubuntu中安装ros
现在虚拟机或者电脑上安装linux或者ubuntu系统,让自己的系统先跑起来吧!
1.首先了解什么是ros
在ROS维基中将ROS定义为“ROS是一个开放源代码的机器人元操作系统。它提供了
我们对操作系统期望的服务,包括硬件抽象、低级设备控制、常用功能的实现、进程之间
的消息传递以及功能包管理。它还提供了用于在多台计算机之间获取、构建、编写和运行
代码的工具和库。”
换句话说,ROS包括一个类似于操作系统的硬件抽象,但它不是一个传统的操作系
统,它具有可用于异构硬件的特性。此外,它是一个机器人软件平台,提供了专门为机器
人开发应用程序的各种开发环境。
2.了解它的版本
ROS的发布及学术会议
■ 2017.12.08 - 发布ROS 2.0
■ 2017.09.21 - 举办ROSCon2017(加拿大)
■ 2017.05.23 - 发布Lunar Loggerhead
■ 2017.05.16 - 从OSRF更名为Open Robotics
■ 2016.10.08 - 举办ROSCon2016(韩国)
■ 2016.05.23 - 发布Kinetic Kame
■ 2015.10.03 - 举办ROSCon2015(德国)
■ 2015.05.23 - 发布Jade Turtle
■ 2014.09.12 - 发布ROSCon2014(美国)
■ 2014.07.22 - 发布Indigo Igloo
■ 2014.06.06 - 举办ROS Kong 2014(香港)
■ 2013.09.04 - 发布Hydro Medusa
■ 2013.05.11 - 举办ROSCon2013(德国)
■ 2013.02.11 - Open Source Robotics Foundation担任开发和管理
■ 2012.12.31 - 发布Groovy Galapagos
■ 2012.05.19 - 举办ROSCon2012(美国)
■ 2012.04.23 - 发布Fuerte
■ 2011.08.30 - 发布Electric Emys
■ 2011.03.02 - 发布Diamondback
■ 2010.08.02 - 发布C Turtle
■ 2010.03.02 - 发布Box Turtle
18 ROS机器人编程
■ 2010.01.22 - 开发ROS 1.0
■ 2007.11.01 - Willow Garage起名“ROS”,并开始开发
■ 2007.05.01 - Switchyard系统,Morgan Quigley,斯坦福大学 AI 实验室,斯坦福大学
■ 2000 - Player/Stage 项目,Brian Gerkey,Richard Vaughan,Andrew Howard,南加州大学
3.开始进入主题:安装
先来进行常规安装
首先进行的是下载源:
$ sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu xenial main” > /etc/apt/sources.list.d/roslatest.list’
然后是设置公钥:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A389552
3BAEEB01FA116
更新软件包:
$ sudo apt-get update && sudo apt-get upgrade -y
下载所有的包(文件比较大):
$ sudo apt-get install ros-kinetic-desktop-full
对ros进行初始化:
$ sudo rosdep init
$ rosdep update
安装ros:
‘$ sudo apt-get install python-rosinstall
加载环境变量:
$ source /opt/ros/kinetic/setup.bash
此时一个普通安装模式已经完成。
进行快速安装模式:
进行简易安装时有版本要求哟。
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_kinetic.sh
$ chmod 755 ./install_ros_kinetic.sh
$ bash ./install_ros_kinetic.sh
友情提示:安装完成后尽量重启哦。
4.环境的配置
打开文件:$ gedit ~/.bashrc
然后在其中添加环境变量:
#Set ROS Kinetic
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
#Set ROS Network
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311
#Set ROS alias command
alias cw=‘cd ~/catkin_ws’
alias cs=‘cd ~/catkin_ws/src’
alias cm=‘cd ~/catkin_ws && catkin_make’
打开终端输入: source ~/.bashrc
安装集成环境IDE:$ sudo apt-get install qtcreator
测试:$ qtcreator
5.构建功能包
先创建空间:
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
创建一个功能包名:
$ catkin_create_pkg my_first_ros_pkg std_msgs roscpp
修改配置文件:
需要添加(别忘了修改哦,一些出现的不用改哦,没出现的添加就行了)
my_first_ros_pkg 0.0.1 The my_first_ros_pkg package Apache License 2.0 Yoonseok Pyo Yoonseok Pyo https://github.com/ROBOTIS-GIT/ros_turtorials/issues https://github.com/ROBOTIS-GIT/ros_turtorials.git http://www.robotis.com catkin std_msgs roscpp std_msgs roscpp修改CMakeLists.txt
cmake_minimum_required(VERSION 2.8.3)
project(my_first_ros_pkg)
find_package(catkin REQUIRED COMPONENTS roscpp std_msgs)
catkin_package(CATKIN_DEPENDS roscpp std_msgs)
include_directories(${catkin_INCLUDE_DIRS})
add_executable(hello_world_node src/hello_world_node.cpp)
target_link_libraries(hello_world_node ${catkin_LIBRARIES})
*
6.开始编写一个小的程序咯
$ cd ~/catkin_ws/src/my_first_ros_pkg/src/
$ gedit hello_world_node.cpp
此为代码:
#include <ros/ros.h> #include <std_msgs/String.h> #include
int main(int argc, char **argv) {
ros::init(argc, argv, “hello_world_node”);
ros::NodeHandle nh;
ros::Publisher chatter_pub = nh.advertise<std_msgs::String>(“say_hello_world”, 1000);
ros::Rate loop_rate(10);
int count = 0;
while (ros::ok())
{
std_msgs::String msg;
std::stringstream ss;
ss << “hello world!” << count;
msg.data = ss.str();
ROS_INFO("%s", msg.data.c_str());
chatter_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
++count;
}
return 0; }
编译一下
$ cd ~/catkin_ws && catkin_make
运行:
打开终端运行roscore
再打开新的终端:运行rosrun my_first_ros_pkg hello_world_node
结束
安装了好长时间才熟悉了,慢慢来,不要急哦,加油。