// it's for Latex

pages

[ hector_slam realization ] #03. Install ros_erle_teleoperation package

이제 erle-copter를 조작하기 위한 패키지를 설치할 것이다.
패키지 명은 ros_erle_teleoperation으로 erle robotics의 로봇들을 원격조종하기 위한 패키지이다.
링크는 다음과 같다.

https://github.com/erlerobot/ros_erle_teleoperation/tree/master/src


작업환경

- OS : Ubuntu 16.04
- ROS : Kinetic
- LIDAR Sendor : YDLIDAR-G4
- Hardware : erle-copter



1.  Download ros_erle_teleoperation package


다음 명령어를 통해 git에서 패키지를 받아와 컴파일 해준다.

1
2
3
4
$ cd ~/catkin_ws/src
$ git clone https://github.com/erlerobot/ros_erle_teleoperation
$ cd ~/catkin_ws
$ catkin_make --pkg ros_erle_teleoperation
cs

# Error_01

다음과 같은 에러가 발생했다.

/home/eh420/catkin_ws/src/ros_erle_teleoperation/src/ROS/thread_ros.cpp:76:56: error: ‘mavros_msgs::SetMode::Response {aka struct mavros_msgs::SetModeResponse_<std::allocator<void> >}’ has no member named ‘success’
             ROS_INFO("Send OK %d Value:", srv.response.success);



# Solution_01


home/catkin_ws/src/ros_erle_teleoperation/src/ROS/thread_ros.cpp

위 경로의 에러가 발생한 파일을 열어보자.

그 중 아래와 같은 코드를 찾아서

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Thread_ROS::updateMode()
{
    if(share_memory->getMode()!=share_memory->getModeChange() && !share_memory->getModeChange().empty()){
        mavros_msgs::SetMode srv;
        srv.request.base_mode = 0;
        srv.request.custom_mode = share_memory->getModeChange();
        if (cl_mode.call(srv)) {
            ROS_INFO("Send OK %d Value:", srv.response.success);
        } else {
            ROS_ERROR("Failed SetMode");
            return;
        }
    }
}
cs

8번째 줄의 success를 mode_sent로 바꾸어주자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Thread_ROS::updateMode()
{
    if(share_memory->getMode()!=share_memory->getModeChange() && !share_memory->getModeChange().empty()){
        mavros_msgs::SetMode srv;
        srv.request.base_mode = 0;
        srv.request.custom_mode = share_memory->getModeChange();
        if (cl_mode.call(srv)) {
            ROS_INFO("Send OK %d Value:", srv.response.mode_sent);
        } else {
            ROS_ERROR("Failed SetMode");
            return;
        }
    }
}
cs


그리고 다시 컴파일 해주자.

1
2
$ cd ~/catkin_ws
$ catkin_make --pkg ros_erle_teleoperation
cs


그러면 문제없이 컴파일이 될 것이다.
( 링크 참조 : https://github.com/Jaeyoung-Lim/modudculab_ros/issues/1 )













































댓글 없음:

댓글 쓰기