ዝርዝር ሁኔታ:

ROS MoveIt ሮቦቲክ ክንድ ክፍል 2 ሮቦት ተቆጣጣሪ 6 ደረጃዎች
ROS MoveIt ሮቦቲክ ክንድ ክፍል 2 ሮቦት ተቆጣጣሪ 6 ደረጃዎች

ቪዲዮ: ROS MoveIt ሮቦቲክ ክንድ ክፍል 2 ሮቦት ተቆጣጣሪ 6 ደረጃዎች

ቪዲዮ: ROS MoveIt ሮቦቲክ ክንድ ክፍል 2 ሮቦት ተቆጣጣሪ 6 ደረጃዎች
ቪዲዮ: I SAW AN ALIEN: TEN TRUE CASES 2024, ሀምሌ
Anonim
Image
Image

github.com/AIWintermuteAI/ros-moveit-arm.git

በቀደመው የጽሁፉ ክፍል እኛ ለሮቦቲክ ክንድችን URDF እና XACRO ፋይሎችን ፈጥረናል እና አስመስሎ በተሰራ አከባቢ ውስጥ የእኛን የሮቦት ክንድ ለመቆጣጠር RVIZ ን ጀምረናል።

በዚህ ጊዜ በእውነተኛው የሮቦት ክንድ እንሰራለን! መያዣውን እንጨምራለን ፣ የሮቦት መቆጣጠሪያን እንጽፋለን እና (እንደ አማራጭ) የ IKfast የተገላቢጦሽ ኪኔማቲክስ ፈላጊን እንፈጥራለን።

ጌሮኒሞ!

ደረጃ 1 ግሪፕተርን ማከል

ግሪፕተርን ማከል
ግሪፕተርን ማከል
ግሪፕተርን ማከል
ግሪፕተርን ማከል
ግሪፕተርን ማከል
ግሪፕተርን ማከል

መያዣን ማከል መጀመሪያ ትንሽ ግራ የሚያጋባ ነበር ፣ ስለዚህ ይህንን ክፍል በቀደመው ጽሑፍ ውስጥ ዘለልኩት። ከሁሉም በኋላ በጣም ከባድ እንዳልሆነ ተገለጠ።

የመያዣ አገናኞችን እና መገጣጠሚያዎችን ለመጨመር የ URDF ፋይልዎን መለወጥ ያስፈልግዎታል።

ለኔ ሮቦት የተሻሻለው የ URDF ፋይል ከዚህ ደረጃ ጋር ተያይ isል። በመሠረቱ እንደ ክንድ ክፍል ተመሳሳይ አመክንዮ ይከተላል ፣ እኔ ሶስት አዳዲስ አገናኞችን (ክላቭ_ባዝ ፣ ክራንች_ር እና ጥፍር_ል) እና ሶስት አዲስ መገጣጠሚያዎችን (መገጣጠሚያ 5 ተስተካክሏል ፣ እና መገጣጠሚያ 6 ፣ መገጣጠሚያ 7 የሚሽከረከሩ መገጣጠሚያዎች ናቸው)።

የ URDF ፋይልዎን ካሻሻሉ በኋላ MoveIt የመነጨ ጥቅልን እና የ xacro ፋይልን በ MoveIt ማዋቀር ረዳት በመጠቀም ማዘመን ያስፈልግዎታል።

በሚከተለው ትዕዛዝ የማዋቀር ረዳት ያስጀምሩ

roslaunch moveit_setup_assistant setup_assistant.launch

አሁን ያለውን MoveIt ውቅር አርትዕን ጠቅ ያድርጉ እና በ MoveIt ጥቅልዎ አቃፊውን ይምረጡ።

አዲስ የእቅድ ቡድን ግሪፕተር (ለአገናኛው አገናኞች እና መገጣጠሚያዎች) እና እንዲሁም የመጨረሻ ውጤት ሰጪን ያክሉ። የእኔ ቅንጅቶች ከዚህ በታች ባለው ቅጽበታዊ ገጽ እይታዎች ውስጥ ናቸው። ለመያዣው የኪኔቲክስ ፈታሽን አለመረጡን ልብ ይበሉ ፣ አስፈላጊ አይደለም። ጥቅሉን ይፍጠሩ እና ፋይሎቹን ይፃፉ።

አሂድ

catkin ማድረግ

በእርስዎ ካትኪን የሥራ ቦታ ውስጥ ያዝዙ።

ደህና ፣ አሁን ከመያዣ ጋር ክንድ አለን!

ደረጃ 2 - ክንድ መገንባት

ክንድ መገንባት
ክንድ መገንባት
ክንድ መገንባት
ክንድ መገንባት
ክንድ መገንባት
ክንድ መገንባት
ክንድ መገንባት
ክንድ መገንባት

እኔ እንደጠቀስኩት የእጅ 3 ዲ አምሳያ በ Juergenlessner የተሰራ ፣ ስለ አስደናቂ ሥራ እናመሰግናለን። አገናኙን ከተከተሉ ዝርዝር የመሰብሰቢያ መመሪያዎች ሊገኙ ይችላሉ።

ምንም እንኳን የቁጥጥር ስርዓቱን መለወጥ ነበረብኝ። ሰርዶስን ለመቆጣጠር አርዱዲኖ ኡኖን ከሴንሰር ጋሻ ጋር እጠቀማለሁ። ዳሳሽ ጋሻ ሽቦውን በማቅለል ብዙ ይረዳል እንዲሁም የውጭ ኃይልን ለ servos ለማቅረብ ቀላል ያደርገዋል። 12V 6A የኃይል አስማሚ በደረጃ-ታች ሞዱል (6V) በኩል ወደ ዳሳሽ ጋሻ እጠቀማለሁ።

Servos ላይ ማስታወሻ. ከ Taobao የተገዛውን MG 996 HR servos እጠቀማለሁ ፣ ግን ጥራቱ በእርግጥ መጥፎ ነው። እሱ በእርግጥ ርካሽ የቻይንኛ ተንኳኳ ነው። ለክርን መገጣጠሚያው ያለው በቂ የማሽከርከሪያ ኃይል አልሰጠም እና በከባድ ጭነት አንድ ጊዜ እንኳን ማቃጠል ጀመረ። የክርን መገጣጠሚያ servo ን ከተሻለ ጥራት አምራች በ MG 946 HR መተካት ነበረብኝ።

ረጅም ታሪክ አጭር - ጥራት ያለው servos ይግዙ። አስማታዊ ጭስ ከእርስዎ ሰርቪስ የሚወጣ ከሆነ ፣ የተሻለ servos ይጠቀሙ። 6V በጣም አስተማማኝ ቮልቴጅ ነው ፣ አይጨምሩት። የማሽከርከር ኃይልን አይጨምርም ፣ ግን አገልጋዮቹን ሊጎዳ ይችላል።

ለ servos ሽቦዎች እንደሚከተለው

መሠረት 2

ትከሻ 2 4 ትከሻ 1 3

ክርን 6

መያዣ 8

የእጅ አንጓ 11

የአርዲኖን ንድፍ ለመቀየር እስኪያስታውሱ ድረስ ለመለወጥ ነፃነት ይሰማዎት።

ሃርድዌርን ከጨረሱ በኋላ ትልቁን ስዕል እንመልከት።

ደረጃ 3: MoveIt RobotCommander በይነገጽ

MoveIt RobotCommander በይነገጽ
MoveIt RobotCommander በይነገጽ

ስለዚህ ፣ አሁን ምን? ለማንኛውም MoveIt እና ROS ለምን ይፈልጋሉ? በቀጥታ በአርዱዲኖ ኮድ በኩል ክንድዎን መቆጣጠር አይችሉም?

አዎ ይችላሉ።

እሺ ፣ አሁን ወደ ሮቦት አቀማመጥ ለማቅረብ GUI ወይም Python/C ++ ኮድን ስለመጠቀም እንዴት? አርዱዲኖ ያንን ማድረግ ይችላል?

አይነት. ለዚያ የሮቦት አቀማመጥን (በ 3 ዲ ቦታ ውስጥ የትርጉም እና የማዞሪያ መጋጠሚያዎችን) የሚወስድ እና ለ servos የጋራ የማዕዘን መልዕክቶችን የሚቀይር የተገላቢጦሽ ኪኔማቲክ ፈቺን መጻፍ ያስፈልግዎታል።

እርስዎ እራስዎ ማድረግ ቢችሉም ፣ ማድረግ ብዙ ሥራ ነው። ስለዚህ ፣ MoveIt እና ROS ሁሉንም ከባድ ትሪግኖሜትሪክ ማንሳት ለእርስዎ ለማድረግ ለ IK (የተገላቢጦሽ ኪኔቲክስ) ፈታሽ ጥሩ በይነገጽ ይሰጣሉ።

አጭር መልስ-አዎ ፣ ከአንዱ አቀማመጥ ወደ ሌላ ለመሄድ ጠንካራ ኮድ ያለው አርዱinoኖን ንድፍ የሚያስፈጽም ቀላል የሮቦት ክንድ ማድረግ ይችላሉ። ነገር ግን ሮቦትዎን የበለጠ ብልህ ለማድረግ እና የኮምፒተር የማየት ችሎታዎችን ለመጨመር ከፈለጉ MoveIt እና ROS የሚሄዱበት መንገድ ነው።

የ MoveIt ማዕቀፍ እንዴት እንደሚሠራ የሚያብራራ በጣም ቀለል ያለ ንድፍ ሠርቻለሁ። በእኛ አገልጋዮች ላይ ግብረመልስ ስለሌለን እና የሮቦት መቆጣጠሪያን ለ servos ማዕዘኖች ለማቅረብ /ለመጠቀም /የጋራ_states ርዕስ በመያዝ በእኛ ሁኔታ የበለጠ ቀላል ይሆናል። እኛ የሮቦት መቆጣጠሪያ የሆነውን አንድ አካል ብቻ ነው የሚጎድለን።

ምን እየጠበቅን ነው? አንዳንድ የሮቦት መቆጣጠሪያዎችን እንፃፍ ፣ ስለዚህ የእኛ ሮቦት… እርስዎ ያውቃሉ ፣ የበለጠ ቁጥጥር የሚደረግባቸው።

ደረጃ 4 የአርዱኖ ኮድ ለሮቦት መቆጣጠሪያ

አርዱዲኖ ኮድ ለሮቦት መቆጣጠሪያ
አርዱዲኖ ኮድ ለሮቦት መቆጣጠሪያ
አርዱዲኖ ኮድ ለሮቦት መቆጣጠሪያ
አርዱዲኖ ኮድ ለሮቦት መቆጣጠሪያ
አርዱዲኖ ኮድ ለሮቦት መቆጣጠሪያ
አርዱዲኖ ኮድ ለሮቦት መቆጣጠሪያ

በእኛ ሁኔታ አርዱዲኖ ኡኖ የሮዝ መስቀለኛ መንገድን በመጠቀም የሮቦት ተቆጣጣሪ ይሆናል። የአርዱዲኖ ንድፍ ኮድ ከዚህ ደረጃ ጋር ተያይ isል እንዲሁም በ GitHub ላይም ይገኛል።

በአርዱዲኖ ኡኖ ላይ እየሄደ ያለው የ ROS መስቀሉ በመሠረቱ MoveIt ን በሚያሄድ ኮምፒተር ላይ ለታተመው /ለ JointState ርዕስ ይመዘገባል ከዚያም የጋራ ማዕዘኖቹን ከራዲያኖች ወደ ዲግሪዎች ይለውጣል እና መደበኛ የ Servo.h ቤተ -መጽሐፍትን በመጠቀም ወደ servos ያስተላልፋል።

ይህ መፍትሔ ትንሽ አደገኛ እና በኢንዱስትሪ ሮቦቶች እንዴት እንደሚደረግ አይደለም። በሐሳብ ደረጃ የእንቅስቃሴውን አቅጣጫ በ /FollowJointState ርዕስ ላይ ማተም እና ከዚያ በ /JointState ርዕስ ላይ ግብረመልስ መቀበል አለብዎት። ነገር ግን በእጃችን ውስጥ የትርፍ ጊዜ ማሳለፊያው ሰርቪስ ግብረመልስ መስጠት አይችልም ፣ ስለሆነም በቀጥታ በ FakeRobotController መስቀለኛ መንገድ ለታተመው /JointState ርዕስ በቀጥታ እንመዘገባለን። በመሠረቱ እኛ ወደ ሰርቪስ ያስተላለፍናቸው ማናቸውም ማዕዘኖች በጥሩ ሁኔታ ይፈጸማሉ ብለን እናስባለን።

የሮዝ ጽሑፉ እንዴት እንደሚሠራ ለተጨማሪ መረጃ የሚከተሉትን ትምህርቶች ማማከር ይችላሉ

wiki.ros.org/rosserial_arduino/Tutorials

ንድፉን ወደ አርዱዲኖ ኡኖ ከሰቀሉ በኋላ የ ROS ጭነትዎን ከሚሠራው ኮምፒተር ጋር በተከታታይ ገመድ ማገናኘት ያስፈልግዎታል።

መላውን ስርዓት ለማምጣት የሚከተሉትን ትዕዛዞች ያስፈጽሙ

roslaunch my_arm_xacro demo.launch rviz_tutorial: = እውነት

sudo chmod -R 777 /dev /ttyUSB0

rosrun rosserial_python serial_node.py _port: =/dev/ttyUSB0 _baud: = 115200

አሁን የሮቦት ክንድን ወደ አቀማመጥ ለማንቀሳቀስ በ RVIZ ውስጥ በይነተገናኝ ጠቋሚዎችን መጠቀም እና ከዚያ በእውነቱ ወደ ቦታው እንዲሄድ እቅድ እና አፈፃፀም ይጫኑ።

አስማት!

አሁን ለፓምፕ ሙከራችን የ Python ኮድ ለመፃፍ ዝግጁ ነን። ደህና ፣ ማለት ይቻላል…

ደረጃ 5 (ከተፈለገ) IKfast ተሰኪን በማመንጨት ላይ

በነባሪ MoveIt በእውነቱ ከ 6 DOF ክንዶች ጋር የማይሰራውን የ KDL kinematics solver መጠቀምን ይጠቁማል። ይህንን መማሪያ በጥብቅ ከተከተሉ ከዚያ በ RVIZ ውስጥ ያለው የእጅ አምሳያው በክንድ ውቅረት ሊደገፍ ወደሚችል ወደ አንዳንድ አቀማመጥ መሄድ እንደማይችል ያስተውላሉ።

የሚመከረው መፍትሔ OpenRave ን በመጠቀም ብጁ የኪኔቲክስ ፈቺን መፍጠር ነው። ያን ያህል ከባድ አይደለም ፣ ግን እሱን መገንባት አለብዎት እና ከምንጩ ጥገኛዎች ወይም የፈለጉትን የ docker መያዣ ይጠቀሙ።

በዚህ መማሪያ ውስጥ የአሰራር ሂደቱ በጣም በጥሩ ሁኔታ ተመዝግቧል። ኡቡንቱ 16.04 ን እና ROS Kinetic ን በሚያሄድ ቪኤም ላይ መሥራቱ ተረጋግጧል።

ፈላጊውን ለማመንጨት የሚከተለውን ትእዛዝ ተጠቀምኩ

openrave.py -የውሂብ ጎታ ተገላቢጦሽ -ሮቦት = arm.xml --iktype = translation3d --iktests = 1000

እና ከዚያ ሮጠ

rosrun moveit_kinematics create_ikfast_moveit_plugin.py test_robot arm my_arm_xacro ikfast0x1000004a. Translation3D.0_1_2_f3.cpp

MoveIt IKfast ተሰኪን ለማመንጨት።

ጠቅላላው ሂደት ትንሽ ጊዜ የሚወስድ ነው ፣ ግን ትምህርቱን በጥብቅ ከተከተሉ በጣም ከባድ አይደለም። ስለዚህ ክፍል ጥያቄዎች ካሉዎት እባክዎን በአስተያየቶቹ ወይም በጠቅላይ ሚኒስትሩ ውስጥ ያነጋግሩኝ።

ደረጃ 6 ራምፕ ሙከራ

ራምፕ ሙከራ!
ራምፕ ሙከራ!
ራምፕ ሙከራ!
ራምፕ ሙከራ!

አሁን እኛ ROS MoveIt Python ኤፒአይ በመጠቀም የምንፈጽመውን የከፍታ ሙከራ ለመሞከር ዝግጁ ነን።

የ Python ኮድ ከዚህ ደረጃ ጋር ተያይ andል እንዲሁም በ github ማከማቻ ላይም ይገኛል። መወጣጫ ከሌለዎት ወይም ሌላ ሙከራ ለመሞከር ከፈለጉ በኮዱ ውስጥ ያለውን የሮቦት አቀማመጥ መለወጥ ያስፈልግዎታል። ለዚያ የመጀመሪያ አፈፃፀም

rostopic echo/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback

RVIZ ን እና MoveIt ን ሲያሄዱ ተርሚናል ውስጥ። ከዚያ ሮቦትን በይነተገናኝ ጠቋሚዎች ወደሚፈለገው ቦታ ያንቀሳቅሱት። የአቀማመጥ እና የአቀማመጥ እሴቶች በተርሚናል ውስጥ ይታያሉ። እነሱን ወደ Python ኮድ ብቻ ይቅዱዋቸው።

የመንገዱን የሙከራ ሩጫ ለማስኬድ

rosrun my_arm_xacro pick/pick_2.py

ከ RVIZ እና ከሮዝሪያል መስቀለኛ መንገድ ጋር ቀድሞውኑ ይሠራል።

ለዕቃ መመርመሪያ ስቴሪዮ ካሜራ የምጠቀምበት እና ለቀላል ዕቃዎች የመምረጫ እና የማስቀመጫ ቧንቧ መስመር የምፈጽምበትን የጽሑፉን ሦስተኛ ክፍል ይከታተሉ!

የሚመከር: