Ubuntu18安装ROS--实现小海龟仿真
Ubuntu18.04安装ROS——实现小海龟仿真
一、ROS的介绍
ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。
二、ROS软件安装
(安装的过程忘记截图保存了,故下面直接说明过程并展示成果)
1.添加ROS软件源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
2.添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3.更新软件源
sudo apt update
4.配置及更换最佳软件源
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
sudo apt update
5.做完上面的四步就可以开始安装ROS了
sudo apt install ros-melodic-desktop-full
《如果报错》
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
6.执行
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
7.初始化rosdep
sudo apt-get install python-pip
sudo pip install rosdepc
sudo rosdepc init(报错执行:sudo apt install python-rosdep2)
rosdepc update
8.设置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
9.安装rosinstall
sudo apt-get install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
10.验证ROS是否安装成功
分别打开三个终端运行命令
第一个终端运行:roscore(报错执行:sudo apt-get install ros-melodic-desktop/source ~/.bashrc)
第二个终端运行:rosrun turtlesim turtlesim_node
第三个终端运行:rosrun turtlesim turtle_teleop_key
第一个终端:

第二个终端:

第三个终端:

三、C++编码实现小海龟圆周运动
1.创建ROS工作空间
①创建工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
②编译工作空间
cd ~/catkin_ws
catkin_make
source devel/setup.bash
③检查环境变量
echo $ROS_PACKAGE_PATH
2.创建ROS功能包
1.创建功能包
cd ~/catkin_ws/src
catkin_create_pkg learning_topic std_msgs rospy roscpp geometry_msgs
2.编译功能包
cd ~/catkin_ws
catkin_make
source devel/setup.bash
3.C++代码
创建publisher.cpp文件
在位置~/catkin_ws/src/learning_topic/src/下创建publisher.cpp文件
使用nano编辑cpp文件代码为下:
include
include "ros/ros.h"
include "std_msgs/String.h"
include "geometry_msgs/Twist.h"
int main(int argc, char **argv)
{
//初始化节点
ros::init(argc, argv, "publisher");
//创建节点句柄
ros::NodeHandle n;
//创建publisher,发布话题[/turtle1/cmd_vel],消息类型[geometry_msgs::Twist]
ros::Publisher chatter_pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 1000);
//设置循环频率
ros::Rate loop_rate(100);
while (ros::ok())
{
//定义发布的数据
geometry_msgs::Twist msg;
//定义linear数据
geometry_msgs::Vector3 linear;
linear.x=1;
linear.y=0;
linear.z=0;
//定义angular数据
geometry_msgs::Vector3 angular;
angular.x=0;
angular.y=0;
angular.z=1;
msg.linear=linear;
msg.angular=angular;
//发布msg数据
chatter_pub.publish(msg);
//循环等待回调函数
ros::spinOnce();
//按照循环频率延时
loop_rate.sleep();
}
return 0;
}
现在开始添加编译选项
cd ~/catkin_ws/src/learning_topic
gedit CMakeLists.txt
在打开的文件末尾加上
add_executable(publisher src/publisher.cpp)
target_link_libraries(publisher ${catkin_LIBRARIES})
保存退出后,在进行编译命令。
cd ~/catkin_ws
catkin_make
如果显示100%就说明编译成功,就可以运行小海龟测试了
依旧是分三个终端运行;在第三个终端输入:
source ~/catkin_ws/devel/setup.bash
rosrun learning_topic publisher
效果图如下:

至此安装并测试完成。

浙公网安备 33010602011771号