一、Rviz调用摄像头
实验环境
ubuntu版本:ubuntu20.04
ROS版本:ros-noetic
- 打开摄像头设备
连接摄像头
- 将usb_cam功能包安装到ros工作空间src下,并编译工作空间
cd ~/catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git
cd ..
catkin_make
- 启动usb_cam_node节点
roscore
cd ~/catkin_ws/src/usb_cam/launch
roslaunch usb_cam-test.launch
- 启动Rviz
#开启两个终端分别执行下面命令
roscore
rviz
添加image
添加image显示项
二、ROS通信编程
- 创建工作空间
输入如下命令行
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
- 编译工作空间
输入如下命令行
cd ~/catkin_ws/
catkin_make
- 设置环境变量
输入命令行
sudo nano ~/.bashrc
然后在打开文件中添加如下代码
source /home/wudi/catkin_ws/devel/setup.bash
//其中wudi为自己用户名
然后输入如下命令行生效
source ~/.bashrc
- 创建功能包
输入如下命令创建功能包
cd ~/catkin_ws/src
catkin_create_pkg learning_communication std_msgs rospy roscpp
输入如下命令编译
cd ~/catkin_ws
catkin_make
1.话题编程
- 发布者
在 ~/catkin_ws/src/learning_communication/src 下创建一个 talker.cpp 文件
cd ~/catkin_ws/src/learning_communication/src
gedit talker.cpp
然后粘贴如下代码
#include <sstream>
#include "ros/ros.h"
#include "std_msgs/String.h"
int main(int argc, char **argv)
{
//ROS节点初始化
ros::init(argc, argv, "talker");
//创建节点句柄
ros::NodeHandle n;
//创建一个Publisher,发布名为chatter的topic,消息类型为std_msgs::String
ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
//设置循环的频率
ros::Rate loop_rate(10);
int count = 0;
while(ros::ok())
{
//初始化std_msgs::String类型的消息
std_msgs::String msg;
std