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..
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..
소스를 보다보니 launch 파일에 parameter를 넣는경우를 봤다. launch 파일 정보에 parameter가 있는것은 확인했는데. http://blog.rakjoon.net/entry/ROS-launch-file 전체적으로 파라미터를 어떤식으로 다루는지 알고 싶어졌다. 내가 파라미터가 필요한곳은 c++ 파일에서이다. 그렇다면 C++ 파일에서 전달받은 파라미터를 어떻게 사용할 것인가? 참고 : http://wiki.ros.org/roscpp/Overview/Parameter%20Server 위를 읽어보면 Param_Server를 C++에서 접근하는 방법은 크게 2가지 있다. handle 버젼 => NodeHandel을 통해서 접근하는 방법.bare 버젼 => ros::param을 통해 바로 접근하..
기본적으로 제공하는 msg 파일을 이용하지말고, 내가 원하는 msg파일을 만들어 publish 하고 subscribe하고 싶어졌다. 그래서 어떠한 설정을 해야할지 모르겠어서 이것저것 찾아서 해봤다.일단 msg 파일 만들기 http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv 패키지에 msg폴더를 만듬. 그안에 원하는 이름으로 .msg 파일을 만든다..그리고 내부에 원하는 양식을 적는다. (기본적인 양식은 여기 있다 http://wiki.ros.org/msg )ex) int64 numstring k (팁 : 내가 msg를 만들고 잘 연결하면 내가만든 msg형식을 다른 msg의 양식으로 쓸수 있다.http://answers.ros.org/question/60614/ho..
- Total
- Today
- Yesterday
- 2000au
- C# 속으루..
- ipTIME
- 책 소개
- ubuntu
- 블로그
- ROS2 설치
- 블로그 개설
- 창숨기기 프로그램
- USB
- robot
- 디스크 쓰기 금지되어 있습니다
- c#
- c#ㄱㄱ
- 창숨김
- C#입문
- 블로그 이야기
- Node
- C#책
- C# 책
- ROS2
- 창숨김 다운
- 창숨기기
- readonly
- 블로그 공지
- iptime 2000au
- c#초보
- c#.net
- 창숨김 프로그램
- 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 |