Попытка подключиться к 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".

Другие вопросы по тегам