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

效果图如下:

至此安装并测试完成。

参考博客--Ubuntu18.04安装ROS——实现小海龟仿真_ubantu18叫开海龟-CSDN博客

以及--Ubuntu18.04安装ROS_ubuntu18.04xiazairos-CSDN博客

posted @ 2024-03-03 17:00  verthy  阅读(67)  评论(0)    收藏  举报