Roboware安装、小乌龟cpp实例

RoboWare官网:http://www.roboware.me/#/home (但好像进不去)
Roboware安装包下载:https://download.csdn.net/download/discoverhfub/11253865

若安装后会提示git不是最新版本,依次执行下面的命令可更新至最新版:

git --version
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
git --version

两个可选插件:
1、为了支持Python调试功能,需要安装pylint:

$ sudo apt-get install python-pip
$ sudo python -m pip install pylint

2、为了获得更好的代码阅读体验,自动格式化整理代码,需要安装clang-format:

$ sudo apt-get install clang-format-3.8

——————————开始使用————————————
1、新建工作区,命名为catkin_ws(或者选择打开已有工作区)
在这里插入图片描述
2、右键src–>新建ros包,包的名字输入test std_msgs roscpp,第一个是package的名字,后面两个是依赖项。
3、对着test右键–>Add C++ Ros Node,增加C++Ros节点:test。test下多了两个文件test_pub.cpp和test_sub.cpp. 是模板。不用可删。或者新建.cpp文件。输入cpp文件名回车后选择executable
4.编译:点击左上角小锤子右边,选择debuge。以debuge模式编译。
在这里插入图片描述
5.点击小锤子–>运行。或者ctrl+shift+B,右下方就会出现如下: node->test
在这里插入图片描述
6.调试:启动master节点。点击菜单栏ROS–>open ~/.bashrc.这样可以打开.bashrc文件。(添加 source /home/“你自己的”/catkin_ws/devel/setup.bash)
7.启动roscore:ROS–>Run roscore
8.点击NODE,选择一个节点,这里选择test_sub。然后选择debug this file.此时就可以愉快的debug了。
在这里插入图片描述
——————————————小乌龟案例————————————
新建一个talker.cpp

#include "ros/ros.h"
#include "std_msgs/String.h"
#include "geometry_msgs/Twist.h"
#include <sstream>

int main(int argc, char **argv)
{
  ros::init(argc, argv, "talker");
  ros::NodeHandle n;
  ros::Publisher chatter_pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 1000);
  ros::Rate loop_rate(10);
  int count = 0;
  while (ros::ok())
  {
    geometry_msgs::Twist msg;         //定义一个twist类的消息对象
    msg.linear.x=1;                    // 设置线速度为1m/s,正为前进,负为后退
    msg.angular.z=1;             // 设置角速度为1rad/s,正为左转,负为右转
    chatter_pub.publish(msg);
    ros::spinOnce();
    loop_rate.sleep();
    ++count;
  }
  return 0;
}

写好后,点击锤子,编译
接下来,启动虚拟小乌龟:turtle

roscore 
rosrun turtlesim turtlesim_node

就会出现一只小乌龟
在这里插入图片描述

再运行刚编写的cpp
在这里插入图片描述
乌龟就动起来了
在这里插入图片描述改变速度参数
在这里插入图片描述
就可得到不同的小乌龟运动轨迹
在这里插入图片描述
接下来编写listen_node.cpp,订阅了turtle1/Pose话题上的消息

#include <ros/ros.h>
#include <turtlesim/Pose.h>
#include <iomanip>

void poseMessageReceived(const turtlesim::Pose& msg)
{
    ROS_INFO_STREAM(std::setprecision(2) << std::fixed << "position=("<< msg.x <<","<< msg.y <<")" <<" *direction="<<msg.theta);   
}
int main(int argv,char** argc)
{
    ros::init(argv,argc,"listener_pose");
    ros::NodeHandle node_Handle;
    ros::Subscriber sub = node_Handle.subscribe("turtle1/pose",1000,&poseMessageReceived);
    //订阅turtle1/pose
    ros::spin();
    return 0;
}

运行node
在这里插入图片描述
实时获取小乌龟的位姿:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Discoverhub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值