搬家turtlebot_gazebo麻烦
Troubles to move turtlebot_gazebo
我开始了一个小项目,我想在凉亭里移动机器人。我启动了:roslaunch turtlebot_gazebo turtlebot_world.launch
我写了一个代码来移动它:
#include "ros/ros.h"
#include "geometry_msgs/TwistWithCovariance.h"
#include "nav_msgs/Odometry.h"
#include "gazebo_msgs/LinkState.h"
#include "geometry_msgs/Twist.h"
int main(int argc, char **argv){
ros::init(argc,argv,"move");
ros::NodeHandle n;
ros::Publisher move_pub = n.advertise<geometry_msgs::Twist>("moving",1000);
ros::Rate loop_rate(10);
geometry_msgs::Twist msg;
while(ros::ok()){
msg.linear.x = 0.0;
msg.linear.y = 0.0;
msg.linear.z = 20.0;
move_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
}
}
这行不通。如您所见,我包含了其他味精并尝试了它们,但我得到了相同的结果。我还试图找到节点turtlebot_teleop_keyboard,以了解它是如何通过输入完成的。但我找不到通往它的路径。那么我该怎么做才能移动它呢?如何找到节点的路径?
您发布到错误的主题和错误的参数。
1-启动您的海龟机器人后,从另一个终端键入"rostopic列表"并查找包含cmd_vel或cmd_vel_mux的主题。如果没有cmd_vel_mux则发布cmd_vel,否则发布cmd_vel_mux/输入之一。
2-对于Turtlebot的线性运动,只有x有任何影响。
我的 ros-kinetic 中的示例节点:
int main(int argc, char **argv)
{
ros::init(argc,argv,"move");
ros::NodeHandle n;
ros::Publisher move_pub = n.advertise<geometry_msgs::Twist>("/cmd_vel_mux/input/navi",1000);
ros::Rate loop_rate(10);
geometry_msgs::Twist msg;
while(ros::ok())
{
// linear velocity
msg.linear.x = 1.0;
msg.linear.y = 0.0;
msg.linear.z = 0.0;
// angular velocity
msg.angular.x = 0.0;
msg.angular.y = 0.0;
msg.angular.z = 0.0;
move_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
}
}
对于 Turtlebot,您有发布线速度 - x、y 和 z 以及角速度 - x、y 和 z 的主题。您需要了解的是这些物理含义。
x中的线速度将使其向前移动。
z中的角速度将使其自行旋转。
其他参数不执行任何操作。 因此,在您的代码中,使用上述 2 个参数将移动机器人。其余参数不会以任何方式影响机器人。
相关文章:
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 查找奇数平方和时遇到麻烦
- 通过 Gazebo 世界插件将静态对象附加到机器人链接
- 将双倍转换为 LPARAM 的麻烦
- 麻烦得到提升::记录器编译
- 翻转 ppm 图像C++麻烦
- 尝试使用 indexOf 创建一个 if 语句来检查字符串是否包含字符.有一点麻烦
- 搬家turtlebot_gazebo麻烦
- CSUF EPP - 你有什么想法(在添加到链接列表末尾时遇到麻烦)
- 我的期末考试遇到了麻烦.代码不断循环回到我的订购菜单,不会显示我的总价
- 作为一个C++新手,我遇到了麻烦
- 我需要帮助创建一个评分系统,但它一直给我一个错误,注释掉的整数是给我带来麻烦的部分
- 找麻木的麻烦
- MySQL 从注入过渡到参数化时遇到麻烦
- 字符串和双精度的麻烦,等值后再得到一个数字
- C++击球平均值程序使用输入/输出文件打印名称,平均值,最高/最低平均值时遇到麻烦
- 自定义QVariant麻烦
- 串和阵列的麻烦
- 在C 向量中修改对象值的麻烦
- C DirectX 11从第二个顶点缓冲区呈现麻烦