====== HW1 - Push the Ball ====== The goal is to hit the ball to push it as far as possible from **any part** of the table. The ball will always spawn at the same place. The robot can be moved with position or cartesian control. The trajectories should be collision free and max allowed velocity is 10 (rad/s). The resulting distance is checked after 2 seconds after you return from ''push_the_ball''. BRUTE will use its config file, where the GUI is disabled. |Code template | {{ :courses:hro:tutorials:hw:hw1.zip |}} | |Maximum score | 5 | |Deadline | 7.3.2024 23:59:59 | ===== How to use the code template ===== * insert config ''hw1.yaml'' to your ''icub_pybullet/configs'' directory * BRUTE will use exactly this config. However, for local testing it is worth to enable GUI * insert your code in ''push_the_ball'' function in ''hw1.py'' * do not rename the function * do not change parameters of the function * you can use other functions inside, but ''push_the_ball(client)'' will be called by the evaluation system * the variable ''client'' of ''icub_pybullet/pycub.py'' will be created by the evaluation system. Do not create a new instance of the client inside the function * ''hw1.py'' should be by default in ''icub_pybulet/folder/another_folder''. You can always change the addition to path in the header of the file or add ''icub_pybullet'' to your python path and then it can be anywhere ===== Scoring ===== * max 4 points * points for distance are computed as: min(3, distance*2) * i.e., you get max 3 points if you push the ball 1.5m away * the best three of you get 3/2/1 bonus points * 1 point will be assigned after manual check of the requirements and the code quality * if you artificialy pause/delay the simulation after the last movement, less point will be awarded ===== Requirements: ===== * Trajectories must be collision-free with the table (self-collisions of the robot are allowed) * Max allowed velocity is 10 (rad/s) * Submit only the file with the name ''hw1.py'' that must include function ''push_the_ball'' function that takes ''client'' as a parameter