ROS1.0环境安装与配置

本文详细介绍了ROS(RobotOperatingSystem)的安装过程,如何使用C++控制小海龟进行标准圆形运动,并展示了创建ROS工作空间、功能包、编写C++代码以及编译和运行的步骤。
摘要由CSDN通过智能技术生成

一ROS的介绍

1ros的介绍

1ROS(机器人操作系统,Robot Operating System),是专门为机器人软件开发所设计出来的一套电脑操作系统架构。它是一个开源的元级操作系统(后操作系统),提供类似于操作系统的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理,它也提供一些工具和库用于获取、建立、编写和执行多机融合的程序。

(更多内容请参考百度百科)

二ROS的安装及小海龟的的运动

1安装

1添加ros软件源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

(来源于中科大)

2添加相应密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

(可以沿用网上其他博客的,也可以自己去申请一个)

3安装ros

sudo apt update
sudo apt-get install ros-melodic-desktop-full

(注意不同版本的ubuntu安装的ros的版本也不同)

4初始化rosdep

sudo rosdep init
rosdep update

(如果出现找不到命令的错误输入sudo apt install python-rosdep)

5设置环境变量

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

(这个步骤是让 bash终端 以后可以识别 roscore,rosrun等命令)

6安装rosinstall

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

(这些组件可以构建和管理开发者自己的ROS工作空间。)

2小海龟

(下面三个步骤分别需要打开不同的终端)

1启动ROS Master

roscore

2启动小海龟仿真器

rosrun turtlesim turtlesim_node

3启动海龟控制节点

rosrun turtlesim turtle_teleop_key

在这里插入图片描述

3查看node之间的话题

1查看节点信息

rosnode list
rosnode info /turtlesim

2查看话题

rostopic list

3监听话题内容

rostopic echo /turtle1/cmd_vel

三用C++写一个程序,控制小海龟走一个标准的圆形

1创建工作空间

1创建工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

2编译工作空间

cd ~/catkin_ws
catkin_make

在这里插入图片描述

3编译工作空间

source devel/setup.bash

4检查环境变量

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代码

在位置~/catkin_ws/src/learning_topic/src/下创建publisher.cpp文件

#include <sstream>
#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;
}
4添加编译选项

Python在ubuntu是可以直接执行的脚本语言,而C++是编译语言,在执行之前需要经过编译过程,因此在编译工作空间之前需要配置文件。

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

在这里插入图片描述

5启动小海龟并实现控制

1打开新终端

roscore

2再打开一个新终端

rosrun turtlesim turtlesim_node

3下面这一步是为了保证rosrun命令能够找到相应的功能包

source ~/catkin_ws/devel/setup.bash
rosrun learning_topic publisher

tkin_make


##### 5启动小海龟并实现控制

1打开新终端

~~~c
roscore

2再打开一个新终端

rosrun turtlesim turtlesim_node

3下面这一步是为了保证rosrun命令能够找到相应的功能包

source ~/catkin_ws/devel/setup.bash
rosrun learning_topic publisher
6效果

在这里插入图片描述

  • 30
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值