Попытка подключиться к ROS с помощью rosserial-windows . Ошибка с IP-адресом
Я пытаюсь подключиться к ROS с помощью Windows. Я следую руководству, данному на веб-сайте ROS ( http://wiki.ros.org/rosserial_windows/Tutorials/Hello%20World), вот как выглядит мой код: // ConsoleApplication1.cpp: определяет точку входа для консоли приложение. //
#include "stdafx.h"
#include <string>
#include <stdio.h>
#include "ros.h"
#include <std_msgs/Float32.h>
#include <windows.h>
using std::string;
int main(int argc, _TCHAR * argv[]){
ros::NodeHandle nh;
char* ros_master = "172.17.194.162"; //error1
printf("Connecting to server at %s\n", ros_master);
nh.initNode(ros_master);//error2
printf("Advertising message\n");
std_msgs::Float32 a;
ros::Publisher cmd("/truevision/throttle_cmd", &a);
nh.advertise(cmd);
printf("Go Car!\n");
while (1){
nh.spinOnce();
Sleep(100);
}
printf("All done\n");
return 0;
}
Это дает мне ошибки
E0144 - const cahr cannot be used to initialize an entity of type char
C2664 - cannot convert argument 1 from const char to char
Но именно так это и делается в учебнике. не могу понять, что здесь не так.
1 ответ
Этот код больше похож на простой C, и многие соглашения неверны, но попробуйте изменить char* ros_master = "172.17.194.162";
в std::string ros_master = "172.17.194.162";
Лучшая форма этого кода будет использовать std::cout
(поскольку это часть C++, а не C) и не будет использовать while (1)
(как while(true)
будет более читабельным).
Вы должны добавить "hostname: port" в ros_master, кроме имени хоста. Порт по умолчанию для последовательного порта ros - 11411. Тогда ваш код долженros_master="171.17.194.162:11411"
.