2

我正在尝试编写一个将在 ROS 上发布消息的播放器驱动程序。

播放器驱动程序不会创建可执行文件,因此我不确定如何在播放器驱动程序中调用 ROS 初始化。

播放器驱动的主要功能是这样的……

void PlayerDriver::Main() 
{

int argc; // Player Main() method does not take argument 
char **argv; // What to do with argc and argv??

geometry_msgs::Point commandInput;
ros::init(argc, argv, "Command");

ros::NodeHandle n;
ros::Publisher command_pub = n.advertise<geometry_msgs::Point>("servocommand", 1000);
ros::Rate loop_rate(1);

while (ros::ok())
{


ros::spinOnce();   

ProcessMessages();

//Do some stuff
commandInput.x = globalVel.v;
commandInput.y = globalVel.w;
commandInput.z = 0.0;
command_pub.publish(commandInput);

//Do some stuff

loop_rate.sleep();
}

}

播放器驱动程序编译并创建一个共享库,我有一个 cfg 文件。它由“player playerdriver.cfg”调用并且工作正常,连接到播放器客户端但它不会在 ROS 上发布消息。

由于 Player Main() 方法不接受参数,我相信这是我做错的地方。欢迎任何建议。

4

1 回答 1

0

看这里链接。还可以阅读 ROS 的发布者/订阅者教程。您可以从研究开始 ->示例发布者。

于 2013-10-17T14:31:53.057 回答