Pieper’s solution. ( Pieper’s work ) 일반적으로 6 DOF 문제는 closed form 해법이 존재하지 않는다. 즉, inverse kinematics로 목표한 지점의 R 위치에 맞는 theta1 ~ 6 을 역으로 구할 수 없다는 뜻이다. 하지만 Pieper’s solution을 이용하면 다르다.Pierper’s solution이란, 3개의 연속된 joint axis가 한점에서 만나는 경우에 이를 inverse kinematics을 이용해서 해석 할 수있다.Puma를 예를 들어보자 Puma 로봇은 위와같은 형태를 취하고있고, 끝부분이 이렇게 joint axis가 한점에서 모이도록 되어있다. 이런 구조를 가지고 있으면 해석이 가능해진다.일단 마지막 손부분이 ( 3개의 연속된 j..
Lagrange multiplier.(출처: https://en.wikipedia.org/wiki/Lagrange_multiplier)PLICP를 공부하다 알게 되었다. (Point to Line Iterative Closest/Corresponding Point)간단하게 얘기하자면, 함수 f(x,y), g(x,y)가 존재한다고 하자. 이때, g(x,y) = c 를 만족하는 x,y로 만들 수 있는 f(x,y) 값중 가장 큰 값이나 가장 작은 값을 구하는 방법이다. 결론부터 적자면$$ L(x,y,\lambda) = f(x,y) - \lambda * (g(x,y) - C) $$ ----- (1) 번 식.를 한뒤. L의 gradient 값이 0을 만족하는 x, y점이 가장 크거나 가장 작은 값의 후보군이 될 ..
Non-autonomous system 수학에서, autonomous system은 smooth manifold 에서의 운동 방정식이고. non-autonomous system은 smooth fiber bundle (Q -> R over R )에서의 운동 방정식이다. smooth manifold 와 smooth fiber bundle 이란?manifold는 a manifold is a topological space that locally resembles Euclidean space near each point. More precisely, each point of an n-dimensional manifold has a neighborhood that is homeomorphic to the Eucl..
printenv 현재 shell의 environment를 출력한다.정보가 많기 때문에 grep으로 검색내용을 지정해주어서 그 값만 보는게 좋다. $printenv | grep 검색내용 예를 들면 ROS_PACKAGE_PATH가 어떤 값으로 등록되어 있는지 확인하고 싶다면, $printenv | grep ROS 로하면 위와 같은 결과가 나오고, 이중 이부분만 찾아서 보면된다. export export를 사용하면 shell에 environmnet를 추가시켜 줄 수 있다. environment 라 하면 시스템 변수에 값을 가지고 있는 것과 같다. 즉) 내가 아이피를 123.123.123.123 으로 설정하기 위해 ROS_IP 를 123.123.123.123 으로 지정해놓으면 프로그램을 실행시 프로그램이 env..
PSPS 명령어를 사용하면 리눅스에서 실행주인 프로세스를 확인 할 수 있다. ps 명령어 사용은 대부분 $ps -aux 혹은 $ps -aux | grep 검색내용 으로 사용한다. 여기서 검색내용은 ps -aux 결과중 검색내용이 포함된 결과들만 표시한다는 뜻이다. 예) $ps -aux | grep ROS (출처 : http://guswl47.egloos.com/v/6346540 ) pstreepstree 명령어는 계층적인 프로세스들을 트리구조로 나타내어주는 명령어이다. 다양한 옵션들이 존재한다. kill kill 명령어를 사용하면 ps에서 확인했던 PID를 이용해서 실행중인 프로세스를 중지 시킬 수 있다. (출처 : http://guswl47.egloos.com/v/6346540 ) $sudo kill ..
ros what the f…? http://wiki.ros.org/roswtf roswtf이란 사용중인 ROS 시스템의 문제점을 점검하는 툴이다. 사용법 1. 그냥 실행 $ roswtf 을 입력하게되면 현재 shell이 있는 위치의 package와 실행중인 roscore의 상태를 점검한다. 2. launch file을 체크.$ roswtf yourfile.launch roswtf 으로 launch파일을 실행하게되면 파일이 실행되었을 때 생길 수 있는 모든 잠재적인 이슈를 확인함. 3. 옵션 --all : ROS_PACKAGE_PATH에 존재하는 모든 package들을 모두 점검함. --no-plugins : roswtf의 플러그인을 사용 안함. --offline : 오프라인 테스트만 진행함. 정확히 ro..
ROS bags란 무엇인가? 실행중인 ROS의 주고받는 data들을 record 한뒤 다시 play 할 수 있다.즉 ) publisher가 발행한 값을 하나의 subscriber로서 다 인식해서 recording을 기록한뒤. play시 자신이 기록한 topic으로 같은 타이밍에 data를 publish하는 방식이다. 기본 예제인 turtlesim을 이용해서 테스트 했을 때, 잘나왔다. 직접 사용해보진 않았지만 일단 정리해본다. 우선 rosbag의 명령어들을 알아보자.check : 현재 세팅에서 rosbag을 play 가능한지 테스트한다. 내생각에는 msg의 형식이 바뀌거나 값이 바뀌게되면 record된 기록이 playable하지 않아져서 check를 하면 플레이가 불가능 하다고 뜰것같다. 라고 생각하였으..
ROS-Concepts에서 보면 알 수 있듯. 참고 : http://blog.rakjoon.net/entry/ROS-Concepts service와 message는 큰 차이점이 있다. 물론 message를 2개 잘섞어서 서버측에서 메시지를 받은후 내가 메시지를 다시 보내는 식으로 설정해 놓으면 결국 service와 같게 만들 수 있다.그렇다면 왜 service를 만든 것인가 ? 내생각에는.첫째로는 일반적으로 메시지를 보내고나서 response를 받아야 할 경우가 생각보다 굉장히 많고, 둘째로는 service를 이용하면 순차적으로 일을 처리하여 sync를 맞출 수 있기 때문이라고 생각한다. 메시지를 다닥다닥 보내고 ros::spin() 으로 대기타면서 메시지가 다닥다닥 돌아오기를 계속 기다리는 것 보다.하..
문제 : ros/ros.h 를 인식하지 못하는 상황 발생 해결 : CMakeLists.txt 파일에서 include_directories 를 안함. include_directories( ${catkin_INCLUDE_DIRS} ) 추가하니 해결됨.문제 : pose.msg파일을 추가하고나서 catkin_make시 빌드 에러가남. 해결 : msg파일에 Header 같은 경우 그냥 쓰면안됨 Header header 라고 쓰면 빌드에러 띄움. 빌드 로그 찾아봐도 무슨에러인지 잘모르겠음. (빌드 로그 분석하는 방법 좀 터득해야할 듯) 해결방법은 => std_msgs/Header header 로 정의해야함. 기본적인 int64 같은 형태가 아니라 struct 타입이라면 전체적으로 다 적어줘야함. (Pose (X),..
Differential-drive : Many mobile robots use a drive mechanism known as the differential drive. It consists of 2 drive wheels mounted on a common axis, and each wheel can independently being driven either forward or backward. 바퀴가 2개 달려있는데. 같은 축에 존재하지만 각각의 바퀴가 독립적으로 앞뒤로 움직일 수있다. 예를 들면 왼쪽 바퀴는 앞으로가고 오른쪽 바퀴는 뒤로가는 그런? Backstepping feedback control In control theory, backstepping is a technique develop..
- Total
- Today
- Yesterday
- 블로그 공지
- readonly
- ROS2
- C#책
- Node
- c#ㄱㄱ
- USB
- 책 소개
- 블로그 이야기
- 블로그 개설
- 창숨기기 프로그램
- c#.net
- 창숨김 프로그램
- c#초보
- ROS2 설치
- robot
- 창숨김 다운
- 블로그
- C# 속으루..
- 창숨기기
- 디스크 쓰기 금지되어 있습니다
- ipTIME
- ubuntu
- 2000au
- C 책
- C#입문
- C# 책
- 창숨김
- iptime 2000au
- c#
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |