Linux - ROS(Robot OS) ROS 터틀봇3 설정 및 구동 실습 2019/06/15 17:34 by 찜질

PC 개발환경 설정
http://emanual.robotis.com/docs/en/platform/turtlebot3/pc_setup/

ROS 의존 패키지 설치


$ sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view ros-kinetic-gmapping ros-kinetic-navigation ros-kinetic-interactive-markers


TurtleBot3 패키지 설치

$ cd ~/catkin_ws/src/
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
$ cd ~/catkin_ws && catkin_make

export ROS_HOSTNAME=ifconfig로 확인한 PC의 IP 입력
export ROS_MASTER_URI=http://${ROS_HOSTNAME}:11311

------------------------


TurtleBot 개발환경 설정
http://emanual.robotis.com/docs/en/platform/turtlebot3/sbc_setup/


%pi / turtlebot

$ sudo raspi-config
(select 7 Advanced Options > A1 Expand Filesystem) 

%시간 동기화
sudo apt-get install ntpdate
sudo ntpdate ntp.ubuntu.com


~/.bashrc 파일 열고 파일의 끝에 아래의 두 줄 수정 
export ROS_HOSTNAME=ifconfig로 확인한 TurtleBot의 IP 입력
export ROS_MASTER_URI=http://${ifconfig로 확인한 PC의 IP 입력}:11311
export TURTLEBOT3_MODEL=burger

-------------------------------

PC와 TurtleBot에 SSH 설치
$ apt-get install ssh 

TurtleBot의 SSH 서버 활성화
$ sudo service ssh start
$ sudo ufw allow ssh


----------------


auto wlan0

iface wlan0 inet static

allow-hotplug wlan0

address 192.168.0.2

netmask 255.255.255.0

gateway 192.168.0.1

dns-nameservers 8.8.8.8 8.8.4.4

wpa-ssid "gateway"

wpa-psk "password"



제 1회 테린이 대회 2019/05/14 19:17 by 찜질


테린이 대회!

테니스 [PETC]의정부 송산 테니스장 예약하기! 2018/10/19 12:23 by 찜질


일단 코트장 내용 확인!


실외 주간 3면 예약할 예정이므로 개인당 8,250 * 3 = 24,750원 사용 예정


1시간 이내 결제 해야 함.

일단 www.eticket.or.kr 에 들어가야 함. 회원가입도 물론!

 

로그인 한 다음에는 빨간색 네모 보시면 됩니다. 일단 테니스장 클릭!

왼쪽 아래에 테니스장 대관 클릭!

 

송산 테니스장 확인하고! 201810월로 되어있으니 201811월로 가기 위해서 화살표 클릭!

 

우리가 예약할 날짜가 113일이므로 (지금은 안열려있지만 00:00AM에 열림) 클릭!


 

(113일 클릭했다고 가정하고) 오른쪽에 신청현황 확인! 그리고 본인이 예약할 코트 선택!

 

 

코트 선택했으면 본인이 예약할 시간 선택!(연속시간 3시간만 예약 가능)


 

확인 클릭


 

 

장바구니 담고! (담고 1시간 이내에 결재 꼭 해야함!)

 

장바구니 이동하여 결제 진행 하시면 됩니다. 최종으로 날짜 및 시간 확인해주세요

 


Linux - ROS(Robot OS) ROS message, service 2018/08/29 21:46 by 찜질

ROS msg

catkin_create_pkg [package] [dependencies(std_msgs, message_generation)]

/msg 폴더에 [message].msg

<[package]/msg/[message].msg>
int32 x
int32 y

[CMakeLists.txt]

find_package(catkin REQUIRED COMPONENTS
    message_generation
    roscpp
    std_msgs)

add_message_files(FILES [message].msg)

generate_messages(DEPENDENCIES std_msgs)

catkin_package(LIBRARIES [package]
                  CATKIN_DEPENDS roscpp std_msgs)

include_directories(${catkin_INCLUDE_DIRS})

add_executable([node] src/[source].cpp)

add_dependencies([node] ${PROJECT_NAME}_generate_messages_cpp)

target_link_libraries([node] ${catkin_LIBRARIES})

[package.xml]

<build_depend>message_generation</exec_depend>
<exec_depend>message_runtime</exec_depend>

[source]
#include"[package]/[message].h"

[package]::[message] msg;


------------------------------------------------


ROS service(server)

catkin_create_pkg [package] [dependencies(std_msgs, message_generation)]

/srv 폴더에 [service].srv

<[package]/srv/[service].srv>
[parameters] 
// int64 a
// int64 b
---
[return]
// int64 sum

[CMakeLists.txt]

find_package(catkin REQUIRED COMPONENTS
    message_generation
    roscpp
    std_msgs)

add_service_files(FILES [service].srv)

generate_messages(DEPENDENCIES std_msgs)

catkin_package(LIBRARIES [package])

include_directories(${catkin_INCLUDE_DIRS})

add_executable([node] src/[source].cpp)

add_dependencies([node] ${PROJECT_NAME}_generate_messages_cpp)

target_link_libraries([node] ${catkin_LIBRARIES})

[package.xml]

<build_depend>message_generation</exec_depend>
<exec_depend>message_runtime</exec_depend>

[source]
#include"[package]/[service].h"

bool function([package]/[service]::Request &req, [package]::[service]::Response &res)
{
return true;
}

ros::NodeHandle n;
ros::ServiceServer server = n.advertiseServeice("[service_name]", function);


------------------------------------------------




ROS service(client) -> 사실 server와 거의 같음.

catkin_create_pkg [package] [dependencies(std_msgs, message_generation)]

/srv 폴더에 [service].srv

<[package]/srv/[service].srv>
[parameters] 
// int64 a
// int64 b
---
[return]
// int64 sum

[CMakeLists.txt]

find_package(catkin REQUIRED COMPONENTS
    message_generation
    roscpp
    std_msgs)

add_service_files(FILES [service].srv)

generate_messages(DEPENDENCIES std_msgs)

catkin_package(LIBRARIES [package])

include_directories(${catkin_INCLUDE_DIRS})

add_executable([node] src/[source].cpp)

add_dependencies([node] ${PROJECT_NAME}_generate_messages_cpp)

target_link_libraries([node] ${catkin_LIBRARIES})

[package.xml]

<build_depend>message_generation</exec_depend>
<exec_depend>message_runtime</exec_depend>

[source]
#include"[package]/[service].h"

ros::NodeHandle n;
ros::ServiceClient client = n.serviceClient<[package]::[service]>("[service_name]");
[package]::[service] srv;
// 여기에서 srv.Request.a  = 10; 이런식으로 parameter 정해주면 됨(service.srv 파일 참고. 이 예제에는 없음)
if(client.call(srv))
{
    //여기에서 int response = srv.Response.sum; 이런식으로 저장하면 됨
    ROS_INFO("Client: Success");
}
else
{
    ROS_INFO("Client: Failed");
}




ROS 32bit 사용할 때 2018/08/17 01:53 by 찜질

Eclipse는 느리고,

QTCreator는 64bit만 지원해서 IDE구성하기가 힘들다...

Visual Studio code(https://code.visualstudio.com/) 에서 extention을 ROS로 설치하면 쉽다...

마소에서 멀티플랫폼에서 사용가능한 IDE를 만들다니...

1 2 3 4 5 6 7 8 9 10 다음